diff options
Diffstat (limited to 'dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log')
27 files changed, 863 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/input.run.txt b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/input.run.txt new file mode 100644 index 0000000000..beb1561c1b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/input.run.txt @@ -0,0 +1,3 @@ +# this file is auto-generated. DO NOT EDIT. +log_001_to_008.html +log_009_to_012.html diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_001_to_008.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_001_to_008.html new file mode 100644 index 0000000000..a3afd6a33c --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_001_to_008.html @@ -0,0 +1,135 @@ +<!DOCTYPE html> +<!-- this file is auto-generated. DO NOT EDIT. --> +<!-- +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +--> +<html> +<head> +<meta charset="utf-8"> +<title>WebGL GLSL conformance test: log_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": "log_float_frag_xvary_ref.frag" + }, + "model": null, + "testProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "log_float_frag_xvary.frag" + }, + "name": "log_float_frag_xvary.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "log_float_frag_xvary01_ref.frag" + }, + "model": null, + "testProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "log_float_frag_xvary01.frag" + }, + "name": "log_float_frag_xvary01.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "log_vec2_frag_xvary_ref.frag" + }, + "model": null, + "testProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "log_vec2_frag_xvary.frag" + }, + "name": "log_vec2_frag_xvary.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "log_vec2_frag_xvary01_ref.frag" + }, + "model": null, + "testProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "log_vec2_frag_xvary01.frag" + }, + "name": "log_vec2_frag_xvary01.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "log_vec3_frag_xvary_ref.frag" + }, + "model": null, + "testProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "log_vec3_frag_xvary.frag" + }, + "name": "log_vec3_frag_xvary.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "log_vec3_frag_xvary01_ref.frag" + }, + "model": null, + "testProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "log_vec3_frag_xvary01.frag" + }, + "name": "log_vec3_frag_xvary01.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "log_float_vert_xvary_ref.vert", + "fragmentShader": "../default/default.frag" + }, + "model": "grid", + "testProgram": { + "vertexShader": "log_float_vert_xvary.vert", + "fragmentShader": "../default/default.frag" + }, + "name": "log_float_vert_xvary.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "log_float_vert_xvary01_ref.vert", + "fragmentShader": "../default/default.frag" + }, + "model": "grid", + "testProgram": { + "vertexShader": "log_float_vert_xvary01.vert", + "fragmentShader": "../default/default.frag" + }, + "name": "log_float_vert_xvary01.test.html", + "pattern": "compare" + } + ] +}); +var successfullyParsed = true; +</script> +</html> diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_009_to_012.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_009_to_012.html new file mode 100644 index 0000000000..f4d4c0268e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_009_to_012.html @@ -0,0 +1,83 @@ +<!DOCTYPE html> +<!-- this file is auto-generated. DO NOT EDIT. --> +<!-- +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +--> +<html> +<head> +<meta charset="utf-8"> +<title>WebGL GLSL conformance test: log_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": "log_vec2_vert_xvary_ref.vert", + "fragmentShader": "../default/default.frag" + }, + "model": "grid", + "testProgram": { + "vertexShader": "log_vec2_vert_xvary.vert", + "fragmentShader": "../default/default.frag" + }, + "name": "log_vec2_vert_xvary.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "log_vec2_vert_xvary01_ref.vert", + "fragmentShader": "../default/default.frag" + }, + "model": "grid", + "testProgram": { + "vertexShader": "log_vec2_vert_xvary01.vert", + "fragmentShader": "../default/default.frag" + }, + "name": "log_vec2_vert_xvary01.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "log_vec3_vert_xvary_ref.vert", + "fragmentShader": "../default/default.frag" + }, + "model": "grid", + "testProgram": { + "vertexShader": "log_vec3_vert_xvary.vert", + "fragmentShader": "../default/default.frag" + }, + "name": "log_vec3_vert_xvary.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "log_vec3_vert_xvary01_ref.vert", + "fragmentShader": "../default/default.frag" + }, + "model": "grid", + "testProgram": { + "vertexShader": "log_vec3_vert_xvary01.vert", + "fragmentShader": "../default/default.frag" + }, + "name": "log_vec3_vert_xvary01.test.html", + "pattern": "compare" + } + ] +}); +var successfullyParsed = true; +</script> +</html> diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_frag_xvary.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_frag_xvary.frag new file mode 100644 index 0000000000..c0e84b2d36 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_frag_xvary.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + float c = 31.0 * color.r + 1.0; + gl_FragColor = vec4(log(c) / 3.466, 0.0, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_frag_xvary01.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_frag_xvary01.frag new file mode 100644 index 0000000000..ca08d35579 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_frag_xvary01.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + float c = (color.r + 0.01) / 1.01; + gl_FragColor = vec4(log(c) / -4.61, 0.0, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_frag_xvary01_ref.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_frag_xvary01_ref.frag new file mode 100644 index 0000000000..cd6b25a410 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_frag_xvary01_ref.frag @@ -0,0 +1,36 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + float x = (color.r + 0.01) / 1.01; + float y = 0.0; + float z; // x-1 / x+1 + int n = 50; + + // ln(x) = 2[x-1 + 1 (x-1)^3 + 1 (x-1)^5 + ...] for x > 0 + // [x+1 3 (x+1) 5 (x+1) ] + // Note: z will always be negative between 0.01 and 1.0 and + // so will y since it is raised to an odd power, and the shader spec + // does not support pow(-x, y) where y is not a compile time constant + z = abs((x - 1.0) / (x + 1.0)); + float p = z; + for(int i = 1; i <= 101; i += 2) + { + y += p / float(i); + p *= z * z; + } + y *= -2.0; + + gl_FragColor = vec4(y / -4.61, 0.0, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_frag_xvary_ref.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_frag_xvary_ref.frag new file mode 100644 index 0000000000..a85b33cba3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_frag_xvary_ref.frag @@ -0,0 +1,33 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + float x = 31.0 * color.r + 1.0; + float y = 0.0; + float z; // x-1 / x+1 + int n = 50; + + // ln(x) = 2[x-1 + 1 (x-1)^3 + 1 (x-1)^5 + ...] for x > 0 + // [x+1 3 (x+1) 5 (x+1) ] + z = (x - 1.0) / (x + 1.0); + float p = z; + for(int i = 1; i <= 101; i += 2) + { + y += p / float(i); + p *= z * z; + } + y *= 2.0; + + gl_FragColor = vec4(y / 3.466, 0.0, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_vert_xvary.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_vert_xvary.vert new file mode 100644 index 0000000000..2e85fb99b8 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_vert_xvary.vert @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + float c = 31.0 * gtf_Color.r + 1.0; + color = vec4(log(c) / 3.466, 0.0, 0.0, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_vert_xvary01.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_vert_xvary01.vert new file mode 100644 index 0000000000..e365003cf1 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_vert_xvary01.vert @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + float c = (gtf_Color.r + 0.01) / 1.01; + color = vec4(log(c) / -4.61, 0.0, 0.0, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_vert_xvary01_ref.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_vert_xvary01_ref.vert new file mode 100644 index 0000000000..059566e7ee --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_vert_xvary01_ref.vert @@ -0,0 +1,37 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + float x = (gtf_Color.r + 0.01) / 1.01; + float y = 0.0; + float z; // x-1 / x+1 + int n = 50; + + // ln(x) = 2[x-1 + 1 (x-1)^3 + 1 (x-1)^5 + ...] for x > 0 + // [x+1 3 (x+1) 5 (x+1) ] + // Note: z will always be negative between 0.01 and 1.0 and + // so will y since it is raised to an odd power, and the shader spec + // does not support pow(-x, y) where y is not a compile time constant + z = abs((x - 1.0) / (x + 1.0)); + float p = z; + for(int i = 1; i <= 101; i += 2) + { + y += p / float(i); + p *= z * z; + } + y *= -2.0; + + color = vec4(y / -4.61, 0.0, 0.0, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_vert_xvary_ref.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_vert_xvary_ref.vert new file mode 100644 index 0000000000..afbfb3ebf9 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_float_vert_xvary_ref.vert @@ -0,0 +1,34 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + float x = 31.0 * gtf_Color.r + 1.0; + float y = 0.0; + float z; // x-1 / x+1 + int n = 50; + + // ln(x) = 2[x-1 + 1 (x-1)^3 + 1 (x-1)^5 + ...] for x > 0 + // [x+1 3 (x+1) 5 (x+1) ] + z = (x - 1.0) / (x + 1.0); + float p = z; + for(int i = 1; i <= 101; i += 2) + { + y += p / float(i); + p *= z * z; + } + y *= 2.0; + + color = vec4(y / 3.466, 0.0, 0.0, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_frag_xvary.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_frag_xvary.frag new file mode 100644 index 0000000000..5dadc29457 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_frag_xvary.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + vec2 c = 31.0 * color.rg + 1.0; + gl_FragColor = vec4(log(c) / 3.466, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_frag_xvary01.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_frag_xvary01.frag new file mode 100644 index 0000000000..0d47567874 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_frag_xvary01.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + vec2 c = (color.rg + 0.01) / 1.01; + gl_FragColor = vec4(log(c) / -4.61, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_frag_xvary01_ref.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_frag_xvary01_ref.frag new file mode 100644 index 0000000000..4f3cc1c805 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_frag_xvary01_ref.frag @@ -0,0 +1,36 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + vec2 x = (color.rg + 0.01) / 1.01; + vec2 y = vec2(0.0); + vec2 z; // x-1 / x+1 + int n = 50; + + // ln(x) = 2[x-1 + 1 (x-1)^3 + 1 (x-1)^5 + ...] for x > 0 + // [x+1 3 (x+1) 5 (x+1) ] + // Note: z will always be negative between 0.01 and 1.0 and + // so will y since it is raised to an odd power, and the shader spec + // does not support pow(-x, y) where y is not a compile time constant + z = abs((x - 1.0) / (x + 1.0)); + vec2 p = z; + for(int i = 1; i <= 101; i += 2) + { + y += p / float(i); + p *= z * z; + } + y *= -2.0; + + gl_FragColor = vec4(y / -4.61, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_frag_xvary_ref.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_frag_xvary_ref.frag new file mode 100644 index 0000000000..0095d68920 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_frag_xvary_ref.frag @@ -0,0 +1,33 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + vec2 x = 31.0 * color.rg + 1.0; + vec2 y = vec2(0.0); + vec2 z; // x-1 / x+1 + int n = 50; + + // ln(x) = 2[x-1 + 1 (x-1)^3 + 1 (x-1)^5 + ...] for x > 0 + // [x+1 3 (x+1) 5 (x+1) ] + z = (x - 1.0) / (x + 1.0); + vec2 p = z; + for(int i = 1; i <= 101; i += 2) + { + y += p / float(i); + p *= z * z; + } + y *= 2.0; + + gl_FragColor = vec4(y / 3.466, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_vert_xvary.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_vert_xvary.vert new file mode 100644 index 0000000000..f5fe9e8e1f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_vert_xvary.vert @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + vec2 c = 31.0 * gtf_Color.rg + 1.0; + color = vec4(log(c) / 3.466, 0.0, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_vert_xvary01.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_vert_xvary01.vert new file mode 100644 index 0000000000..1f39279f1f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_vert_xvary01.vert @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + vec2 c = (gtf_Color.rg + 0.01) / 1.01; + color = vec4(log(c) / -4.61, 0.0, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_vert_xvary01_ref.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_vert_xvary01_ref.vert new file mode 100644 index 0000000000..41197b1783 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_vert_xvary01_ref.vert @@ -0,0 +1,37 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + vec2 x = (gtf_Color.rg + 0.01) / 1.01; + vec2 y = vec2(0.0); + vec2 z; // x-1 / x+1 + int n = 50; + + // ln(x) = 2[x-1 + 1 (x-1)^3 + 1 (x-1)^5 + ...] for x > 0 + // [x+1 3 (x+1) 5 (x+1) ] + // Note: z will always be negative between 0.01 and 1.0 and + // so will y since it is raised to an odd power, and the shader spec + // does not support pow(-x, y) where y is not a compile time constant + z = abs((x - 1.0) / (x + 1.0)); + vec2 p = z; + for(int i = 1; i <= 101; i += 2) + { + y += p / float(i); + p *= z * z; + } + y *= -2.0; + + color = vec4(y / -4.61, 0.0, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_vert_xvary_ref.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_vert_xvary_ref.vert new file mode 100644 index 0000000000..b86606a71c --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec2_vert_xvary_ref.vert @@ -0,0 +1,34 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + vec2 x = 31.0 * gtf_Color.rg + 1.0; + vec2 y = vec2(0.0); + vec2 z; // x-1 / x+1 + int n = 50; + + // ln(x) = 2[x-1 + 1 (x-1)^3 + 1 (x-1)^5 + ...] for x > 0 + // [x+1 3 (x+1) 5 (x+1) ] + z = (x - 1.0) / (x + 1.0); + vec2 p = z; + for(int i = 1; i <= 101; i += 2) + { + y += p / float(i); + p *= z * z; + } + y *= 2.0; + + color = vec4(y / 3.466, 0.0, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_frag_xvary.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_frag_xvary.frag new file mode 100644 index 0000000000..7424e3a6c5 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_frag_xvary.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + vec3 c = 31.0 * color.rgb + 1.0; + gl_FragColor = vec4(log(c) / 3.466, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_frag_xvary01.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_frag_xvary01.frag new file mode 100644 index 0000000000..7e9de5561e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_frag_xvary01.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + vec3 c = (color.rgb + 0.01) / 1.01; + gl_FragColor = vec4(log(c) / -4.61, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_frag_xvary01_ref.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_frag_xvary01_ref.frag new file mode 100644 index 0000000000..d27f807db6 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_frag_xvary01_ref.frag @@ -0,0 +1,36 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + vec3 x = (color.rgb + 0.01) / 1.01; + vec3 y = vec3(0.0); + vec3 z; // x-1 / x+1 + int n = 50; + + // ln(x) = 2[x-1 + 1 (x-1)^3 + 1 (x-1)^5 + ...] for x > 0 + // [x+1 3 (x+1) 5 (x+1) ] + // Note: z will always be negative between 0.01 and 1.0 and + // so will y since it is raised to an odd power, and the shader spec + // does not support pow(-x, y) where y is not a compile time constant + z = abs((x - 1.0) / (x + 1.0)); + vec3 p = z; + for(int i = 1; i <= 101; i += 2) + { + y += p / float(i); + p *= z * z; + } + y *= -2.0; + + gl_FragColor = vec4(y / -4.61, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_frag_xvary_ref.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_frag_xvary_ref.frag new file mode 100644 index 0000000000..a5d21f6f35 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_frag_xvary_ref.frag @@ -0,0 +1,33 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + vec3 x = 31.0 * color.rgb + 1.0; + vec3 y = vec3(0.0); + vec3 z; // x-1 / x+1 + int n = 50; + + // ln(x) = 2[x-1 + 1 (x-1)^3 + 1 (x-1)^5 + ...] for x > 0 + // [x+1 3 (x+1) 5 (x+1) ] + z = (x - 1.0) / (x + 1.0); + vec3 p = z; + for(int i = 1; i <= 101; i += 2) + { + y += p / float(i); + p *= z * z; + } + y *= 2.0; + + gl_FragColor = vec4(y / 3.466, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_vert_xvary.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_vert_xvary.vert new file mode 100644 index 0000000000..6e3b77b53e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_vert_xvary.vert @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + vec3 c = 31.0 * gtf_Color.rgb + 1.0; + color = vec4(log(c) / 3.466, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_vert_xvary01.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_vert_xvary01.vert new file mode 100644 index 0000000000..d1e06dc358 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_vert_xvary01.vert @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + vec3 c = (gtf_Color.rgb + 0.01) / 1.01; + color = vec4(log(c) / -4.61, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_vert_xvary01_ref.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_vert_xvary01_ref.vert new file mode 100644 index 0000000000..d5c67acde3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_vert_xvary01_ref.vert @@ -0,0 +1,37 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + vec3 x = (gtf_Color.rgb + 0.01) / 1.01; + vec3 y = vec3(0.0); + vec3 z; // x-1 / x+1 + int n = 50; + + // ln(x) = 2[x-1 + 1 (x-1)^3 + 1 (x-1)^5 + ...] for x > 0 + // [x+1 3 (x+1) 5 (x+1) ] + // Note: z will always be negative between 0.01 and 1.0 and + // so will y since it is raised to an odd power, and the shader spec + // does not support pow(-x, y) where y is not a compile time constant + z = abs((x - 1.0) / (x + 1.0)); + vec3 p = z; + for(int i = 1; i <= 101; i += 2) + { + y += p / float(i); + p *= z * z; + } + y *= -2.0; + + color = vec4(y / -4.61, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_vert_xvary_ref.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_vert_xvary_ref.vert new file mode 100644 index 0000000000..204c6dab9a --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_vec3_vert_xvary_ref.vert @@ -0,0 +1,34 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + vec3 x = 31.0 * gtf_Color.rgb + 1.0; + vec3 y = vec3(0.0); + vec3 z; // x-1 / x+1 + int n = 50; + + // ln(x) = 2[x-1 + 1 (x-1)^3 + 1 (x-1)^5 + ...] for x > 0 + // [x+1 3 (x+1) 5 (x+1) ] + z = (x - 1.0) / (x + 1.0); + vec3 p = z; + for(int i = 1; i <= 101; i += 2) + { + y += p / float(i); + p *= z * z; + } + y *= 2.0; + + color = vec4(y / 3.466, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} |