WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-109115-20130206175408.patch (text/plain), 1010.10 KB, created by
Gregg Tavares
on 2013-02-06 17:57:31 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Gregg Tavares
Created:
2013-02-06 17:57:31 PST
Size:
1010.10 KB
patch
obsolete
>Subversion Revision: 142058 >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 985c3f826f1eca0d686ce966036ffd69b1c2bd83..335df798e2ade0cba33fb34354516afee21a4579 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,5 +1,597 @@ > 2013-02-06 Gregg Tavares <gman@chromium.org> > >+ Add WebGL Conformance Tests glsl folder. >+ https://bugs.webkit.org/show_bug.cgi?id=109115 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * webgl/conformance/glsl/functions/glsl-function-abs-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-abs.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-acos-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-acos.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-asin-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-asin.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-atan-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-atan-xy-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-atan-xy.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-atan.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-ceil-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-ceil.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-clamp-float-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-clamp-float.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-clamp-gentype-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-clamp-gentype.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-cos-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-cos.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-cross-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-cross.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-distance-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-distance.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-dot-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-dot.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-faceforward-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-faceforward.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-floor-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-floor.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-fract-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-fract.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-length-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-length.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-max-float-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-max-float.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-max-gentype-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-max-gentype.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-min-float-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-min-float.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-min-gentype-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-min-gentype.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-mix-float-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-mix-float.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-mix-gentype-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-mix-gentype.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-mod-float-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-mod-float.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-mod-gentype-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-mod-gentype.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-normalize-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-normalize.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-reflect-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-reflect.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-sign-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-sign.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-sin-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-sin.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-smoothstep-float-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-smoothstep-float.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-step-float-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-step-float.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function-step-gentype-expected.txt: Added. >+ * webgl/conformance/glsl/functions/glsl-function-step-gentype.html: Added. >+ * webgl/conformance/glsl/functions/glsl-function.html: Added. >+ * webgl/conformance/glsl/implicit/add_int_float.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/add_int_float.vert.html: Added. >+ * webgl/conformance/glsl/implicit/add_int_mat2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/add_int_mat2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/add_int_mat3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/add_int_mat3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/add_int_mat4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/add_int_mat4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/add_int_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/add_int_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/add_int_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/add_int_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/add_int_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/add_int_vec4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/add_ivec2_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/add_ivec2_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/add_ivec3_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/add_ivec3_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/add_ivec4_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/add_ivec4_vec4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/assign_int_to_float.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/assign_int_to_float.vert.html: Added. >+ * webgl/conformance/glsl/implicit/assign_ivec2_to_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/assign_ivec3_to_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/assign_ivec4_to_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/construct_struct.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/construct_struct.vert.html: Added. >+ * webgl/conformance/glsl/implicit/divide_int_float.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/divide_int_float.vert.html: Added. >+ * webgl/conformance/glsl/implicit/divide_int_mat2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/divide_int_mat2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/divide_int_mat3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/divide_int_mat3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/divide_int_mat4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/divide_int_mat4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/divide_int_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/divide_int_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/divide_int_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/divide_int_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/divide_int_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/divide_int_vec4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/divide_ivec2_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/divide_ivec2_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/divide_ivec3_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/divide_ivec3_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/divide_ivec4_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/divide_ivec4_vec4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/equal_int_float.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/equal_int_float.vert.html: Added. >+ * webgl/conformance/glsl/implicit/equal_ivec2_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/equal_ivec2_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/equal_ivec3_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/equal_ivec3_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/equal_ivec4_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/equal_ivec4_vec4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/function_int_float.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/function_int_float.vert.html: Added. >+ * webgl/conformance/glsl/implicit/function_ivec2_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/function_ivec2_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/function_ivec3_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/function_ivec3_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/function_ivec4_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/function_ivec4_vec4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/greater_than.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/greater_than.vert.html: Added. >+ * webgl/conformance/glsl/implicit/greater_than_equal.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/greater_than_equal.vert.html: Added. >+ * webgl/conformance/glsl/implicit/less_than.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/less_than.vert.html: Added. >+ * webgl/conformance/glsl/implicit/less_than_equal.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/less_than_equal.vert.html: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_float.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_float.vert.html: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_mat2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_mat2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_mat3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_mat3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_mat4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_mat4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/multiply_int_vec4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/multiply_ivec2_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/multiply_ivec3_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/multiply_ivec4_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/not_equal_int_float.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/not_equal_int_float.vert.html: Added. >+ * webgl/conformance/glsl/implicit/not_equal_ivec2_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/not_equal_ivec3_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/not_equal_ivec4_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_float.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_float.vert.html: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_mat2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_mat2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_mat3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_mat3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_mat4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_mat4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/subtract_int_vec4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/subtract_ivec2_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/subtract_ivec3_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/subtract_ivec4_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html: Added. >+ * webgl/conformance/glsl/implicit/ternary_int_float.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/ternary_int_float.vert.html: Added. >+ * webgl/conformance/glsl/implicit/ternary_ivec2_vec2.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html: Added. >+ * webgl/conformance/glsl/implicit/ternary_ivec3_vec3.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html: Added. >+ * webgl/conformance/glsl/implicit/ternary_ivec4_vec4.vert-expected.txt: Added. >+ * webgl/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html: Added. >+ * webgl/conformance/glsl/matrices/glsl-mat4-to-mat3-expected.txt: Added. >+ * webgl/conformance/glsl/matrices/glsl-mat4-to-mat3.html: Added. >+ * webgl/conformance/glsl/misc/attrib-location-length-limits-expected.txt: Added. >+ * webgl/conformance/glsl/misc/attrib-location-length-limits.html: Added. >+ * webgl/conformance/glsl/misc/embedded-struct-definitions-forbidden-expected.txt: Added. >+ * webgl/conformance/glsl/misc/embedded-struct-definitions-forbidden.html: Added. >+ * webgl/conformance/glsl/misc/glsl-function-nodes-expected.txt: Added. >+ * webgl/conformance/glsl/misc/glsl-function-nodes.html: Added. >+ * webgl/conformance/glsl/misc/glsl-long-variable-names-expected.txt: Added. >+ * webgl/conformance/glsl/misc/glsl-long-variable-names.html: Added. >+ * webgl/conformance/glsl/misc/glsl-vertex-branch-expected.txt: Added. >+ * webgl/conformance/glsl/misc/glsl-vertex-branch.html: Added. >+ * webgl/conformance/glsl/misc/large-loop-compile-expected.txt: Added. >+ * webgl/conformance/glsl/misc/large-loop-compile.html: Added. >+ * webgl/conformance/glsl/misc/non-ascii-comments.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/non-ascii-comments.vert.html: Added. >+ * webgl/conformance/glsl/misc/non-ascii.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/non-ascii.vert.html: Added. >+ * webgl/conformance/glsl/misc/re-compile-re-link-expected.txt: Added. >+ * webgl/conformance/glsl/misc/re-compile-re-link.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-256-character-define-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-256-character-define.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-256-character-identifier.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-256-character-identifier.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-257-character-define-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-257-character-define.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-257-character-identifier.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-257-character-identifier.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-_webgl-identifier.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-array-of-structs-uniform-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-array-of-structs-uniform.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-attrib-array.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-attrib-array.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-attrib-struct.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-attrib-struct.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-clipvertex.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-clipvertex.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-comma-assignment-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-comma-assignment.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-comma-conditional-assignment-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-comma-conditional-assignment.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-conditional-scoping-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-conditional-scoping-negative-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-conditional-scoping-negative.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-conditional-scoping.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-default-precision.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-default-precision.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-default-precision.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-default-precision.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-define-line-continuation.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-define-line-continuation.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-dfdx-no-ext.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-dfdx.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-dfdx.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-do-loop-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-do-loop.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-error-directive-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-error-directive.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-explicit-int-cast.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-float-return-value.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-float-return-value.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-for-loop-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-for-loop.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-for-scoping-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-for-scoping.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-frag-depth.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-frag-depth.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-function-recursion.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-function-recursion.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-function-scoped-struct-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-function-scoped-struct.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-functional-scoping-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-functional-scoping.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-glcolor.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-glcolor.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-gles-1.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-gles-1.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-gles-symbol.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-gles-symbol.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-glprojectionmatrix.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-hex-int-constant-macro-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-hex-int-constant-macro.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-include.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-include.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-int-return-value.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-int-return-value.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-invalid-identifier.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-invalid-identifier.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-ivec2-return-value.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-ivec3-return-value.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-ivec4-return-value.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-limited-indexing.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-limited-indexing.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-long-line-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-long-line.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-non-ascii-error.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-non-ascii-error.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-precision.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-precision.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-quoted-error.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-quoted-error.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-reserved-words-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-reserved-words.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-too-many-uniforms-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-too-many-uniforms.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-vec2-return-value.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-vec2-return-value.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-vec3-return-value.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-vec3-return-value.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-vec4-return-value.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-vec4-return-value.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-version-100.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-version-100.frag.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-version-100.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-version-100.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-version-120.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-version-120.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-version-130.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-version-130.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-webgl-identifier.vert-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-webgl-identifier.vert.html: Added. >+ * webgl/conformance/glsl/misc/shader-with-while-loop-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-with-while-loop.html: Added. >+ * webgl/conformance/glsl/misc/shader-without-precision.frag-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shader-without-precision.frag.html: Added. >+ * webgl/conformance/glsl/misc/shaders-with-mis-matching-uniforms-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html: Added. >+ * webgl/conformance/glsl/misc/shaders-with-mis-matching-varyings-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shaders-with-mis-matching-varyings.html: Added. >+ * webgl/conformance/glsl/misc/shaders-with-missing-varyings-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shaders-with-missing-varyings.html: Added. >+ * webgl/conformance/glsl/misc/shared-expected.txt: Added. >+ * webgl/conformance/glsl/misc/shared.html: Added. >+ * webgl/conformance/glsl/misc/struct-nesting-exceeds-maximum-expected.txt: Added. >+ * webgl/conformance/glsl/misc/struct-nesting-exceeds-maximum.html: Added. >+ * webgl/conformance/glsl/misc/struct-nesting-under-maximum-expected.txt: Added. >+ * webgl/conformance/glsl/misc/struct-nesting-under-maximum.html: Added. >+ * webgl/conformance/glsl/misc/uniform-location-length-limits-expected.txt: Added. >+ * webgl/conformance/glsl/misc/uniform-location-length-limits.html: Added. >+ * webgl/conformance/glsl/reserved/_webgl_field.vert-expected.txt: Added. >+ * webgl/conformance/glsl/reserved/_webgl_field.vert.html: Added. >+ * webgl/conformance/glsl/reserved/_webgl_function.vert-expected.txt: Added. >+ * webgl/conformance/glsl/reserved/_webgl_function.vert.html: Added. >+ * webgl/conformance/glsl/reserved/_webgl_struct.vert-expected.txt: Added. >+ * webgl/conformance/glsl/reserved/_webgl_struct.vert.html: Added. >+ * webgl/conformance/glsl/reserved/_webgl_variable.vert-expected.txt: Added. >+ * webgl/conformance/glsl/reserved/_webgl_variable.vert.html: Added. >+ * webgl/conformance/glsl/reserved/webgl_field.vert-expected.txt: Added. >+ * webgl/conformance/glsl/reserved/webgl_field.vert.html: Added. >+ * webgl/conformance/glsl/reserved/webgl_function.vert-expected.txt: Added. >+ * webgl/conformance/glsl/reserved/webgl_function.vert.html: Added. >+ * webgl/conformance/glsl/reserved/webgl_preprocessor_reserved-expected.txt: Added. >+ * webgl/conformance/glsl/reserved/webgl_preprocessor_reserved.html: Added. >+ * webgl/conformance/glsl/reserved/webgl_struct.vert-expected.txt: Added. >+ * webgl/conformance/glsl/reserved/webgl_struct.vert.html: Added. >+ * webgl/conformance/glsl/reserved/webgl_variable.vert-expected.txt: Added. >+ * webgl/conformance/glsl/reserved/webgl_variable.vert.html: Added. >+ * webgl/conformance/glsl/samplers/glsl-function-texture2d-bias-expected.txt: Added. >+ * webgl/conformance/glsl/samplers/glsl-function-texture2d-bias.html: Added. >+ * webgl/conformance/glsl/samplers/glsl-function-texture2dlod-expected.txt: Added. >+ * webgl/conformance/glsl/samplers/glsl-function-texture2dlod.html: Added. >+ * webgl/conformance/glsl/samplers/glsl-function-texture2dproj-expected.txt: Added. >+ * webgl/conformance/glsl/samplers/glsl-function-texture2dproj.html: Added. >+ * webgl/conformance/glsl/variables/gl-fragcoord-expected.txt: Added. >+ * webgl/conformance/glsl/variables/gl-fragcoord.html: Added. >+ * webgl/conformance/glsl/variables/gl-frontfacing-expected.txt: Added. >+ * webgl/conformance/glsl/variables/gl-frontfacing.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/00_test_list.txt: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/00_test_list.txt: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-abs.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-acos.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-asin.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan-xy.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-ceil.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-float.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-gentype.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cos.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cross.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-distance.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-dot.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-faceforward.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-floor.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-fract.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-length.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-lessThan.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-float.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-gentype.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-float.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-gentype.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-float.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-gentype.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-float.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-gentype.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-normalize.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-reflect.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-refract.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sign.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sin.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-float.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-float.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-gentype.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/00_test_list.txt: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_float.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/add_ivec2_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/add_ivec3_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/add_ivec4_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/assign_int_to_float.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/construct_struct.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_float.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec2_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec3_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec4_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/equal_int_float.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec2_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec3_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec4_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/function_int_float.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/function_ivec2_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/function_ivec3_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/function_ivec4_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/greater_than.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/greater_than_equal.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/less_than.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/less_than_equal.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_float.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/not_equal_int_float.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_float.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/ternary_int_float.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/literals/00_test_list.txt: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/matrices/00_test_list.txt: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/matrices/glsl-mat4-to-mat3.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/00_test_list.txt: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/attrib-location-length-limits.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/embedded-struct-definitions-forbidden.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/foo: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-2types-of-textures-on-same-unit.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-function-nodes.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-long-variable-names.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-vertex-branch.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/include.vs: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/large-loop-compile.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/non-ascii-comments.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/non-ascii.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/re-compile-re-link.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-define.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-identifier.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-define.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-identifier.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-uniform.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-array.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-struct.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-clipvertex.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-assignment.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-conditional-assignment.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping-negative.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-define-line-continuation.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-do-loop.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-error-directive.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-float-return-value.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-loop.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-scoping.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-frag-depth.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-recursion.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-scoped-struct.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-functional-scoping.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-glcolor.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-1.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-symbol.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-hex-int-constant-macro.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-include.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-int-return-value.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-invalid-identifier.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-limited-indexing.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-long-line.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-non-ascii-error.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-precision.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-quoted-error.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-too-many-uniforms.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec2-return-value.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec3-return-value.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-return-value.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-120.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-130.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-webgl-identifier.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-while-loop.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shader-without-precision.frag.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-varyings.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shaders-with-missing-varyings.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/shared.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-exceeds-maximum.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-under-maximum.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/misc/uniform-location-length-limits.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/reserved/00_test_list.txt: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/reserved/_webgl_field.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/reserved/_webgl_function.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/reserved/_webgl_struct.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/reserved/_webgl_variable.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_field.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_function.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_preprocessor_reserved.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_struct.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_variable.vert.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/samplers/00_test_list.txt: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2d-bias.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dlod.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dproj.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/variables/00_test_list.txt: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord.html: Added. >+ * webgl/resources/webgl_test_files/conformance/glsl/variables/gl-frontfacing.html: Added. >+ >+2013-02-06 Gregg Tavares <gman@chromium.org> >+ > Adds failing WebGL Conformance Tests. > https://bugs.webkit.org/show_bug.cgi?id=109075 > >diff --git a/LayoutTests/webgl/conformance/glsl/functions/glsl-function-abs-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-abs-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..bf64176487cbb989539ee2732e83b8633ac45633 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-abs.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-abs.html >new file mode 100644 >index 0000000000000000000000000000000000000000..baa34b6b1dcc47791021940ae212a17b319ac0a8 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-acos-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-acos-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0735202f2e82aab56c22c1e0de5f74c41eb7357e >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-acos.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-acos.html >new file mode 100644 >index 0000000000000000000000000000000000000000..734bfb5b2518c82f2602ee14503b4366b9368661 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-asin-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-asin-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e56e32a5d8d358bdd735b0e299f1e68071fde9a7 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-asin.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-asin.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b55ac0bc716319312fb0b8749e2f3d1d73cf1b48 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-atan-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-atan-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b416a788d6520d954786e277578f7715a0331131 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-atan-xy-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-atan-xy-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..da878eb4070b6f8d68dc79ae3b0dcfe79eb7819a >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-atan-xy.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-atan-xy.html >new file mode 100644 >index 0000000000000000000000000000000000000000..233ef4cddd4961aa96e851d75f380be5290dcb7f >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-atan.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-atan.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f3fffef15e1e859da587b3e2c2129d620bb2cdc6 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-ceil-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-ceil-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c78bf49d3d682f03fc7a9ce9f4c22764be7529fe >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-ceil.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-ceil.html >new file mode 100644 >index 0000000000000000000000000000000000000000..22cde16772432642725b9f87e0a104d52d317bb3 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-clamp-float-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-clamp-float-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..eb420e8c75ee1fea812c8adc82d59081f5cb1588 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-clamp-float.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-clamp-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6df9cab8fe30799e6cfe7a4e388fa268890adad2 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-clamp-gentype-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-clamp-gentype-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..02e06ce09fe4178c76e0b7c2500e9a2673365066 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-clamp-gentype.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-clamp-gentype.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9e0390d8c25873dc956f1953c2c80c4da160adf5 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-cos-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-cos-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2752cd3986c17d6ec1e60a2d2a2ec5c94ea90587 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-cos.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-cos.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b5ab0e2ba5dccd12462d4b72321696e3775d84ed >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-cross-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-cross-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..13f057fded4f5403a092857afa5df9c4672cb9c1 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-cross.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-cross.html >new file mode 100644 >index 0000000000000000000000000000000000000000..bc3d9b06144e3372b02247aa72298dad8e96397c >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-distance-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-distance-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..49155a326693addf85027ef7c998705d5f258582 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-distance.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-distance.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b5ddc6f908d0dcdfd68c48eff995da5becc83c58 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-dot-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-dot-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1598bf10fbcd574460f5c737c3cc59c5bb39f1f1 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-dot.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-dot.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c4fe34e44a2e184885bbd1e19a8eb8018a455d9f >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d50131e07fffe47a886d7f822f3ea7198718f4e1 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-faceforward-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-faceforward-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a243684509bdc47dd74279a9a12cfaf7ecce486d >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-faceforward.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-faceforward.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ed4ef3937a94df2804cbe729bf3621b9f0862e8b >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-floor-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-floor-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..48d174d2a1ad03734afd2f39afddad1d5b4c630c >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-floor.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-floor.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ef3e5b52bf473733f53253dd1bc0e772b24a733c >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-fract-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-fract-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..97b17dc41e9349947f59a3869152526d2d4e2746 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-fract.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-fract.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9ecf05620d973d01387bebe3675a938014b5d333 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-length-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-length-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7545cd73d3d46600c1c07b94cb77092b8752fb55 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-length.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-length.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3c3ff5c83f6eca614b38d399284213f238070dfd >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-max-float-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-max-float-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..fc2e6ce6c3de112ae3b94d48d39d57f508e93a3e >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-max-float.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-max-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b6f0ac9ef53cefcf3c632fe4aa9eded2d8c7923c >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-max-gentype-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-max-gentype-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a68e3bdab99be92159f2dfc17a7d5f849c65a4f8 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-max-gentype.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-max-gentype.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0ad8a2384b54ce04d65c3e7f62ed7249997e6cb1 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-min-float-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-min-float-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1c2dae8f5c6217bbde1efc191e17a1b8cd32fb06 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-min-float.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-min-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e956ec1da478e585a235c070f08310859bc5bf27 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-min-gentype-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-min-gentype-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..95f0b699f92e00ddd8272c45daedaaee7bee1728 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-min-gentype.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-min-gentype.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c8c30706e926e4968a31864704a9ff746f9ad53d >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-mix-float-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-mix-float-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d608816cd3f94e9fdb2985ec1d2fcf4b7481c8b6 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-mix-float.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-mix-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ec7d1686d6ba64d2e5b20361cd4c3ee1c9dc6428 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-mix-gentype-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-mix-gentype-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..cff282bd15fe3da2794515fbbf80da2b28eeeff4 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-mix-gentype.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-mix-gentype.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0b1884d6808be59abc64e3e53906666938338be4 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-mod-float-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-mod-float-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9cd53f2227a9561800033babd306376f21a5f062 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-mod-float.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-mod-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6eb80d40fd1649290112f903c8d4b2b803b504bb >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-mod-gentype-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-mod-gentype-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..cea89e344ee13a6c83940ceec2b8f0ca83d14fc0 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-mod-gentype.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-mod-gentype.html >new file mode 100644 >index 0000000000000000000000000000000000000000..650c26cc4bcfa62b6a016dea65b196d0fe229e24 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-normalize-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-normalize-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c027776925d700e26fb884eb6fd93b3ae40a61a3 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-normalize.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-normalize.html >new file mode 100644 >index 0000000000000000000000000000000000000000..189ecac81b354e1f3f8e774387def69db837d0be >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-reflect-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-reflect-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f5cb39f2533ee4fa427fcf55a8158973921f85c0 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-reflect.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-reflect.html >new file mode 100644 >index 0000000000000000000000000000000000000000..cb44a0430b1a598b24c9a13e9a56f2c6ab963aa4 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-sign-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-sign-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..55340467c36ce594625b0f4975adc9f93c15b296 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-sign.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-sign.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6627a6f0988ce6aaf4fb156aebd3310ec0afcc76 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-sin-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-sin-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3a81ee35bded80b2a04eab311419c2aff4237cb0 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-sin.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-sin.html >new file mode 100644 >index 0000000000000000000000000000000000000000..945a7309f0f9ed5120db831a83f600b4fb5c8b5f >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-smoothstep-float-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-smoothstep-float-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..fcc6965aa0a7ddc7acd2786d4441b0bdff572083 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-smoothstep-float.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-smoothstep-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b97aea62d543400ccf8882be15e756574485d1bb >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-step-float-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-step-float-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..69e19a8f357ec331ca6b9e60f39f518d22be344b >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-step-float.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-step-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ae6d5ab469a017d9b167aec086d923f93fd6b0aa >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function-step-gentype-expected.txt b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-step-gentype-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..63a2b81af440da22eefcda2ea1f7bbbafcdca5db >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/functions/glsl-function-step-gentype.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function-step-gentype.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3c50ccc8fde94c2fadb2ca2a2aae88a446fb4745 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/functions/glsl-function.html b/LayoutTests/webgl/conformance/glsl/functions/glsl-function.html >new file mode 100644 >index 0000000000000000000000000000000000000000..309825dcdc9e19afdd7c488789740eab715fd272 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/add_int_float.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/add_int_float.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..da8561c8eb4e03a5e4654815dd07781c2f714697 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/add_int_float.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/add_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..845d5dd77bc669fe6e7c7b4e8db6f843ea36656b >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/add_int_mat2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/add_int_mat2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1f296ef09ae4022ad956ce3b0b8a4185dc1470a0 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/add_int_mat2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/add_int_mat2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..66807462c8fca5ccb675df896ae0966415e1634c >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/add_int_mat3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/add_int_mat3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e50ff05610366fb9f13be150bcad1c4230f683b0 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/add_int_mat3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/add_int_mat3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8023ee9bc64b4edfb7ef77e9131d384e79d0ae86 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/add_int_mat4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/add_int_mat4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5dcef1622c53b86b1b9d9a39719720e443ee547e >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/add_int_mat4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/add_int_mat4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..37ef2b2dc5b5dcc9977496d7d02d125573283075 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/add_int_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/add_int_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1e0aa1b7f816ed4bb8c342d5684fb372b1b24124 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/add_int_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/add_int_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..af23cf7656e74be7ca2633ec666dba69b344e269 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/add_int_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/add_int_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9c705c68494bea9b105ef8c2925e82413e88f2b3 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/add_int_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/add_int_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0979e113b4cbd8fc57e932634963bc7d42f92b77 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/add_int_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/add_int_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0f20563bea41198cdfefe9a1c512ea414952d3d8 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/add_int_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/add_int_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..46b28707eb2f4bd71398d396d9fdbb524a9f03e3 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/add_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/add_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0d94f4eeb8f5f1b1559ed5d20e88561c467e8861 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/add_ivec2_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/add_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2a7092285f80eedfe6edfe225c2db1c0690252ee >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/add_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/add_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..44c12c877afc622d4271c78677a2758827869fb7 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/add_ivec3_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/add_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8046051be85116b6ce9c1cdaa4202f77a19cd82b >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/add_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/add_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3197c092ea4f5ab5b926d5e25b467767b2819927 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/add_ivec4_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/add_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..fa4ed19c3c864dc63b179de3c4ff0b43a71d2714 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/assign_int_to_float.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/assign_int_to_float.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1a08c1e0720b22cf56f5aef2137375ec7f901a1b >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/assign_int_to_float.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/assign_int_to_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c744f5dac51527304adb2d253f8f21a9ca683657 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/assign_ivec2_to_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/assign_ivec2_to_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c567e87949b57092ca751ce78b15df2d521d27b0 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1fea9ef0124c98d4700e5406b3e08b0673491e1c >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/assign_ivec3_to_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/assign_ivec3_to_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..892b200c03245f38261a8f5cd492998fb6120da6 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b481836a7f89c5b1ddf12bf427a5a495ea05d89a >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/assign_ivec4_to_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/assign_ivec4_to_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f896c5a8642a1ef921a722f9153fb82d8d9411d7 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a103bdd7a38bd0fd54fd703cc300eaab6e5322e8 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/construct_struct.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/construct_struct.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f11b514f40b1005afc9d1bc8a37f1adc16d496e1 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/construct_struct.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/construct_struct.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..46283928c0d3791d8a1217d4d2bd4867ebc126b4 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/divide_int_float.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_float.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8c6a09953afbe0fb8db005a2fd25921f76ffedab >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/divide_int_float.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..215124a5d4eede51d61f1c3bc6ef0d8362f73933 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/divide_int_mat2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_mat2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c165103476380455aff874a0b6044a414ebf46ef >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/divide_int_mat2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_mat2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..47035ddcc00fdc174b39b07cace48fe47ed6f2f7 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/divide_int_mat3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_mat3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..48fb212d90c127f2c9ae3ef7fc3a99dbba76036b >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/divide_int_mat3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_mat3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ea587b645b29eccdfab5be97eff1f52c104fb42a >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/divide_int_mat4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_mat4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ba545f2af8ea6b2ade4b16de6404ff3f8cdc4b02 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/divide_int_mat4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_mat4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..03df96ba1fa01886b0f7b650aebee54a9fa7a7d8 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/divide_int_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..98592f7f877019100b51d64aa24b23795be27442 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/divide_int_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2620a90bb2a4a236f5ed9ccd4b433110ae7de7ad >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/divide_int_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..abe1fb26b9a7a94f7162b81566d1461e84b76b27 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/divide_int_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f905474cd6178ed0829010b4c7852667b9c32d59 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/divide_int_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3ccbf3f8fcf7db12dbd7dac0312b369761b88766 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/divide_int_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/divide_int_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0b9c68fd97741fce8beb99368c4322cd25f79cf3 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/divide_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/divide_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5de4ad274c1bd20ec198141e60f3186d59597130 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/divide_ivec2_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/divide_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8d9da4fe937434a1fa114203f93c4f3b8e28812d >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/divide_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/divide_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3d75093f83c79c58236804a0ab911d1b4dd8e221 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/divide_ivec3_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/divide_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e9afda822912e10dec84156e5c7721b4beb02a1e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/divide_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/divide_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e84795eb73cc0ff2e1baf7511107f601d007f801 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/divide_ivec4_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/divide_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ec858ae4510a26aaa3382a856394204b5df30824 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/equal_int_float.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/equal_int_float.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..af932ee96c1f2c3cd89f935ee5d24f981301cf36 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/equal_int_float.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/equal_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7dbfc2ee4b2df2e71dcb74dad7514461cb75de1a >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/equal_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/equal_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a66ed94f8a1ebbf38f8c626bc6abbf777803df2d >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/equal_ivec2_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/equal_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..12888080f6537ce4d907ae3f85b8af15715b3ed6 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/equal_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/equal_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b25832b8a1f89a08467c5dab4f6edc17c2398f85 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/equal_ivec3_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/equal_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4aefb745284f13089aabdb0fda87232a6e6920ac >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/equal_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/equal_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e663e7c8f7e0f058d70eaae2fc416d6a3024e752 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/equal_ivec4_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/equal_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c268d64e6460af725cbbeaff7a7b434bcfa16859 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/function_int_float.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/function_int_float.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..92743f6c565aaa00b17bcb78333244b6a3475e5b >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/function_int_float.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/function_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8b5fae20c0ee8e95c8d829e48ab680a08f27d080 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/function_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/function_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a61782276564787e8d4ff3673a49367a26c9e496 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/function_ivec2_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/function_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..bef155542c8279b30f6d1c89561e830c2cc3f4ed >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/function_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/function_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0e0a5e862615499290c3ea99bd634e99798e0745 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/function_ivec3_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/function_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d4a7ea5817509dc060cc29fceef485fbf7045f08 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/function_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/function_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2cd334081964567ffa9ad757d29837ebf0212adc >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/function_ivec4_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/function_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6ad634699b0fe58645eea74dd0d8f8bb54bce95b >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/greater_than.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/greater_than.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..bd3374562a192ec34cbae2788d37140e4d7c9957 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/greater_than.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/greater_than.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2c9f9ed1ab1895ae590dcbd3a52124d14e4ee7ef >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/greater_than_equal.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/greater_than_equal.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..26e1ef9f0f3543e8f773dd7060f7264d3c67a8b1 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/greater_than_equal.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/greater_than_equal.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..890c212483288d74ce472cae15e68e00835d8a41 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/less_than.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/less_than.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5426d7aaa89ed63800a21088aa4c504df7f59c08 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/less_than.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/less_than.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3c6f1b53a9a2d2ddb68708013f1532df2c6ce902 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/less_than_equal.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/less_than_equal.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..37b9411ae6f5d737e5081d748a2bf580776eeb88 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/less_than_equal.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/less_than_equal.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ace82ea3b67c27a46f9e446ef9ffd004b0019e71 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/multiply_int_float.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_float.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..41eae50c43bc73f822c4f8b5f3b86b28e224e843 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/multiply_int_float.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..15da32ffd0f4c2c07bb2456301a19240137b5dcc >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/multiply_int_mat2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_mat2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5ef689d2db097bff1b4d0204b056bfcbb5e454ab >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/multiply_int_mat2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_mat2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..930ee4c8f7468e12edadd73b8af0a909c6244a9d >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/multiply_int_mat3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_mat3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..033f75502b289ac486b47b908c1edfab6ba98ab4 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/multiply_int_mat3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_mat3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..48bff3c498de07ed366c403c6af870add602c361 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/multiply_int_mat4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_mat4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..49f66b5cf452f6460c895bf89b73c0e7c1003f29 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/multiply_int_mat4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_mat4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..dc279dbcb667240ac781c4d9b4a14f2a1c077e95 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/multiply_int_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3555bf46f4d5432915c5da89fe7039d2b23db8de >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/multiply_int_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5a72d4d23433f16b88c0c007ba32123257a8c8be >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/multiply_int_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d7d209a02577cdffea0440e63d505ccb56b65b7e >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/multiply_int_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e5f4f8fd088bef833ec96cc2634900df5ae56b9d >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/multiply_int_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ebd888114e0fccaa04a4514418d5b530ae68ca66 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/multiply_int_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/multiply_int_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..093864c115c9523a174250649bd4e18f283c2625 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/multiply_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/multiply_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1ec945ea5286722ddb970a3b403ae429a1aaca57 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2d18ecf95d6411212d5e726826370fb8e47e4feb >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/multiply_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/multiply_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d0b385481f433bfa84ed387fef59978d94a660e2 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b488cbc6bf7b5e9ff74ffab9ed5c19dc1db85220 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/multiply_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/multiply_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b76a9686fe283eda7a086aa6ea6de322aa3d8289 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..bc9ef4ae0f8b5c3e47d5b4129067639cfe2813ed >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/not_equal_int_float.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/not_equal_int_float.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..fedc279686a98bb9581c5a16cce87bdccc39a25b >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/not_equal_int_float.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/not_equal_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..694f1494206c1b26a7f315ef59ac1e23b28c8584 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/not_equal_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/not_equal_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9a07f743c76c85857c6eaee3a0e7f20e76268138 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6566303862693082457b0ecd18457423ccdab282 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/not_equal_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/not_equal_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..61638ec74be6f692d6c202c672d6e1945b2e6274 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6fad7bfc27edd4619f1d470b77e0c04a6fd7e310 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/not_equal_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/not_equal_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6767ad3fd338df109c85727efef6ceb15b3b531b >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..44e9eb58b772c9d941d83872b2e7728ef8e78475 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/subtract_int_float.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_float.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2d38e2e1a5864bdf467b2dec0cf08eba2e528e51 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/subtract_int_float.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..82fce3c118202d786630ed1b6b72860c86b2ef51 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/subtract_int_mat2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_mat2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..00cbc20b81abcada583d84d1f92057f4f085b9a9 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/subtract_int_mat2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_mat2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..22eea6cd0be22aefd353d7c24b50e9d16d56f32a >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/subtract_int_mat3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_mat3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..41f0d10af5a4b5fcc1b4c371b44c695112a59c13 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/subtract_int_mat3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_mat3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..56a8a325e270b10c9e12dcf6daa476856973ddc5 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/subtract_int_mat4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_mat4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..300353cbe31928f2850d19ca81286648bdd43c8b >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/subtract_int_mat4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_mat4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0747cd2f441ce2f6282f897e15ed04fb8c5c7837 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/subtract_int_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6ad17a0c356bc784b5ad0bb807fe9f75ebe0a236 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/subtract_int_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d104bb76af294657b9bc641d01e18e747d3b596b >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/subtract_int_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9fd7adbdefa234e908d8104910938441fc629553 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/subtract_int_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..578b8a1bbd1f6a5bf9a2a3b4c4b5c430ac2850aa >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/subtract_int_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7b0b1f012725fbf5450ccce20c4e88d40aa72ffa >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/subtract_int_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/subtract_int_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..fb76768619e41e7134924ef128a4e80209beff98 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/subtract_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/subtract_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e364d8254192fed607141b4441588c47bba240b4 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..578e0631eebd4b772d8f69fa071d2495ca586494 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/subtract_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/subtract_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c22eff7b9a7223ee03f04b840304d014130089b1 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b8240553e560e9649dacbb370064362d6bbe6d7d >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/subtract_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/subtract_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..99bc57fa42a9a21ccca3af350ebd03a6c496625a >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..79b45ecfb2111fdecc8a8edaaad46645fea37493 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/ternary_int_float.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/ternary_int_float.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e079602ca5fc42a1c4ee9e8359ed1fbbb26c3539 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/ternary_int_float.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/ternary_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..42d292bc8450875fd3d3ff484cc0889c46166a63 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/ternary_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/ternary_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d88d8cd709f85e54773289e2961c1a5de17c58bd >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ec795acedb23d7b985bef4c3667c0a8092737f82 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/ternary_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/ternary_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b421b6670f9a30272b8366269ccdf541d7612f53 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..aac535268342f367a318bcfe34cf3be35176cbe4 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/implicit/ternary_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/implicit/ternary_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9cbc05daf854383fd9069e08dc8bbd4e7a9c0eb9 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html b/LayoutTests/webgl/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a4de6a600178b1fbdbfd469e07beb42a2efdc7ca >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/matrices/glsl-mat4-to-mat3-expected.txt b/LayoutTests/webgl/conformance/glsl/matrices/glsl-mat4-to-mat3-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..cc30ad619bf4128cc4ea6254076aeb448f23f067 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/matrices/glsl-mat4-to-mat3.html b/LayoutTests/webgl/conformance/glsl/matrices/glsl-mat4-to-mat3.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f254e493d98b51fd278539900a353da989dea6fb >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/attrib-location-length-limits-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/attrib-location-length-limits-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..27ea5023373a7da58b2ca210528753e44f7ba3dd >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/attrib-location-length-limits.html b/LayoutTests/webgl/conformance/glsl/misc/attrib-location-length-limits.html >new file mode 100644 >index 0000000000000000000000000000000000000000..47e0da32e8568a3d87be55e5c87bfa99c1608101 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/embedded-struct-definitions-forbidden-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/embedded-struct-definitions-forbidden-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6504171707952b9b108939f4b47f3795e0e4f033 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/embedded-struct-definitions-forbidden.html b/LayoutTests/webgl/conformance/glsl/misc/embedded-struct-definitions-forbidden.html >new file mode 100644 >index 0000000000000000000000000000000000000000..63e70f00ccc3bd3f824fed1d40dca62fabc2ebc8 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/glsl-function-nodes-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/glsl-function-nodes-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..90792dd9ac5a0dd2a783b9de2f7224b48091a7f9 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/glsl-function-nodes.html b/LayoutTests/webgl/conformance/glsl/misc/glsl-function-nodes.html >new file mode 100644 >index 0000000000000000000000000000000000000000..95984fc07e4682c3dcbbbfbbe9fc371cc51130ca >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/glsl-long-variable-names-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/glsl-long-variable-names-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..728b0c11928b1fe7a495a5301ea61aa0c2a47f47 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/glsl-long-variable-names.html b/LayoutTests/webgl/conformance/glsl/misc/glsl-long-variable-names.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8779a5a42b60dfc42daaa6d5c6b101f047dff6fc >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/glsl-vertex-branch-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/glsl-vertex-branch-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..cfae589d82dec047405ed515b353b8f521f136ce >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/glsl-vertex-branch.html b/LayoutTests/webgl/conformance/glsl/misc/glsl-vertex-branch.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c8e4166dce4fda76a3766d26960eccd26566e49e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/large-loop-compile-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/large-loop-compile-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..62d8c5fb99bb1af4d0b9ccd1a24a60ce31b65549 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/large-loop-compile.html b/LayoutTests/webgl/conformance/glsl/misc/large-loop-compile.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d85b3e89b13f8568dbf28b44d2cbed23bc9bb906 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/non-ascii-comments.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/non-ascii-comments.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4d5d212ba425d0eedd09f904cb83063fae21a632 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/non-ascii-comments.vert.html b/LayoutTests/webgl/conformance/glsl/misc/non-ascii-comments.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..456cff699de8f9a39fc218efa3eccb3ebe3c79f3 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/non-ascii.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/non-ascii.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0b20246331af80da28f20f7b6782c38af95a3f2e >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/non-ascii.vert.html b/LayoutTests/webgl/conformance/glsl/misc/non-ascii.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..75fd8a0210afb42ffdc6664e0ffe7974a96d5ff1 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/re-compile-re-link-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/re-compile-re-link-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..547f938668a0030d3f87314528588b6739b76d95 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/re-compile-re-link.html b/LayoutTests/webgl/conformance/glsl/misc/re-compile-re-link.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4b3d9962d02b120fd8cbf1667a314642a6315c4c >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-256-character-define-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-256-character-define-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c443768f1352920633efb64edd6fbda5a10b37e9 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-256-character-define.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-256-character-define.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a5d3f21e055979c13c14d2ef6c25c54adcfade67 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-256-character-identifier.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-256-character-identifier.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b33a5511f644a370ff175f013d9ca114b835cb42 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-256-character-identifier.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-256-character-identifier.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5f255905c21c2643bd8900bf638d0a9a545d00f6 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-257-character-define-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-257-character-define-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4f04a0233a3dd0e8f046e32a5b4c09b78059b463 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-257-character-define.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-257-character-define.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a7e8b219793e3b71778bb507022fddc240e91fbf >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-257-character-identifier.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-257-character-identifier.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3caa0ffdf166357f06d4aded99446b473be3301a >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-257-character-identifier.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-257-character-identifier.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7683625e65d4e5c21bf4372d4cb7aa3f8513c3da >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-_webgl-identifier.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-_webgl-identifier.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7270f7d62a4212d1de4ffceba456abbd0ad7f071 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..adc6db696811507d17a849fe8b03b0b6b0338517 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-arbitrary-indexing.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..216530c7de6cf12811a755eacb433dfa50e4b3a7 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d6042f98a60af6646f59d0dfc38ec51ccdcc2fcc >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-arbitrary-indexing.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..44f487cae1cfa5a4a3f1d9b8d1a92fda2e97b10c >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..96d0b5b00327e69caefc701c17e8ec23dfe74e33 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-array-of-structs-uniform-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-array-of-structs-uniform-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..aef6c8f46f6de5fa0eb7a3ebddd095e9b39eec29 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-array-of-structs-uniform.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-array-of-structs-uniform.html >new file mode 100644 >index 0000000000000000000000000000000000000000..bfcb8ded722252bfe7b6269238be89b920ba45fb >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-attrib-array.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-attrib-array.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8eabae1ae70ad522b4a76130aeaf4beec68fc96a >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-attrib-array.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-attrib-array.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..fc0a6719e70d3056bd9a4b2b866a0f98001a063c >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-attrib-struct.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-attrib-struct.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..347621223d20a906b2c63a98d34993695cc392bb >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-attrib-struct.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-attrib-struct.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..03d70c5e3eb4f003d076f4b57da8f3252d8e36b2 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-clipvertex.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-clipvertex.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d7f3a4f956a2446cb9d53bc178553b0a4bb7a2fe >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-clipvertex.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-clipvertex.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..46d364e33cb9bc28e1ff56e144792d9ba69f343e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-comma-assignment-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-comma-assignment-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e3e47e65d0b008868edbdd0245831ee1e6b5abab >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-comma-assignment.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-comma-assignment.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d3ed2d4b44aa0929383b4ebbd1d90bb74ce42eb3 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-comma-conditional-assignment-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-comma-conditional-assignment-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8bbcbd25125f4ae2f66b82e15d527097d208f07f >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-comma-conditional-assignment.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-comma-conditional-assignment.html >new file mode 100644 >index 0000000000000000000000000000000000000000..76d9dff4ec1c77a7e4586a73bfcb52c40b242857 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-conditional-scoping-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-conditional-scoping-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0ee7b4c153c5a9ea0e2bfa9684f800965b4495f8 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-conditional-scoping-negative-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-conditional-scoping-negative-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6ab5e3a5cb12fb255dfd4c6c1572aa61daeb1fae >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-conditional-scoping-negative.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-conditional-scoping-negative.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b92096bdaf8b18458a8299d568f03c0d1d2e94ff >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-conditional-scoping.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-conditional-scoping.html >new file mode 100644 >index 0000000000000000000000000000000000000000..38881d415766557e851a12cb8783a4707fd7d59f >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-default-precision.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-default-precision.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d1c19e81d0aae75b479bf3d6f7d6e635830a6753 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-default-precision.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-default-precision.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4d9f4aabaa1ef08a0a7e57b20c82b6035fa0b6df >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-default-precision.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-default-precision.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f63b4019a0b12d0c4648a7cd494cf55410747d4a >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-default-precision.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-default-precision.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4f796629e970c9d1e0e284a1f07801060b963d7e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-define-line-continuation.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-define-line-continuation.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..790ea310f9df3c0f9b5f384892eeb503bb13b215 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-define-line-continuation.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-define-line-continuation.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..727d1fe97fe9ba6034e240d8f40f76a27c43dbf7 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-dfdx-no-ext.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-dfdx-no-ext.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6454b821a6f8b6a1c41795d9b01e7852d8835f52 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..fb77824550e2bce444e39ed742c07642e85b54ef >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-dfdx.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-dfdx.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..465cb16b192bff7714b46ab037046eb17523696f >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-dfdx.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-dfdx.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3d46537d506cba29b10c3cd4067fc142a358d0be >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-do-loop-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-do-loop-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..94c020c0242f2875c673cec7464fb4563bc0e5f9 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-do-loop.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-do-loop.html >new file mode 100644 >index 0000000000000000000000000000000000000000..30f32f372664648b4490670611c129171e6e4de0 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-error-directive-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-error-directive-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..19a60c8dc8ecc5d7a08c5afa4c12f2e3893092a8 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-error-directive.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-error-directive.html >new file mode 100644 >index 0000000000000000000000000000000000000000..932cc217f8e91d57bdb3a339e8d4fb1283ba14b9 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-explicit-int-cast.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-explicit-int-cast.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..bdc74409255d786cbdd3fc3e79e00f6553b7b7ac >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6b79018d46e092ad117f7c245125f02821588611 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-float-return-value.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-float-return-value.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ae02b98ccc29d10b9b90e280fe0987e74405b087 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-float-return-value.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-float-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ae1c135adeb50b1f89b3bcc4b95a8b6525df0747 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-for-loop-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-for-loop-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b2929fb7b66779d6bbbf403a7659eb15af9bba66 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-for-loop.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-for-loop.html >new file mode 100644 >index 0000000000000000000000000000000000000000..debf09ca39c1589c14e8bdef369dafaa68cacf91 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-for-scoping-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-for-scoping-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e19226c073ad590558823b54979a5733cbff1a73 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-for-scoping.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-for-scoping.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1d913e995c4f60238c426d3df6dd2cee016c88ce >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-frag-depth.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-frag-depth.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5185d367413f0be57913380f75e41de5ed951294 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-frag-depth.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-frag-depth.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..796041d279ea525cd5fcfb06ef33bb019e416f26 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-function-recursion.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-function-recursion.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5e34faa20ef62b3267b3d52f53564fa6807cf06d >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-function-recursion.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-function-recursion.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6cfd1fa76107df75097d8eec4a6ed8df936f980f >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-function-scoped-struct-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-function-scoped-struct-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..29ea892bdd41838282834ee8dd00a57d63be039c >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-function-scoped-struct.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-function-scoped-struct.html >new file mode 100644 >index 0000000000000000000000000000000000000000..fbabfc79b50e505862e6c1f2e0bf8bdf58ee2564 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-functional-scoping-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-functional-scoping-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..558aff33676b5f380ca7d63cb27aa971e186a924 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-functional-scoping.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-functional-scoping.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1613f425113ab9a73681c448ceb820668581f180 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-glcolor.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-glcolor.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a1cb0f0a1ad473698635fc94f711c2f8f929730c >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-glcolor.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-glcolor.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1cacc5439407c691594c8a4b6e6d68b4c7b3366f >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-gles-1.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-gles-1.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1815384048e76bbf91fd0f94ca286a2a7989a324 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-gles-1.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-gles-1.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..86f4c5108fbbd9c0dacc89a1c5fa3a17daf0d862 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-gles-symbol.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-gles-symbol.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..131690ab029bbb95b1e9f2556df6d3deea734a21 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-gles-symbol.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-gles-symbol.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..18b0dc65c6d627b32f37d727fe407181ff4fd9a4 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-glprojectionmatrix.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-glprojectionmatrix.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4928dbae108a885104e4c8c574b7777180ec5465 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7d4481748473c2e5f86f98f6ccdd972e64b26a56 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-hex-int-constant-macro-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-hex-int-constant-macro-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..689b167549a1722f5302e7586216eb5b39d5f5d1 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-hex-int-constant-macro.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-hex-int-constant-macro.html >new file mode 100644 >index 0000000000000000000000000000000000000000..af371c22e54b62ef415bd41f61b07188b8405d2e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..18b8ffba8f50dd3891f592a7a9f64a4178eab80a >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b4e758a2f801aa22990c9dff0b8bfbd9a5159f30 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-include.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-include.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8f9e976e77bb6ad3df0f8e9e70940e38eb3d4c1d >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-include.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-include.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8309dd0c67df4a929fce473ba06ee8adc6540ebe >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-int-return-value.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-int-return-value.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..060410155c5a2beeb79a6742961ce5b80f6d9d57 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-int-return-value.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-int-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..dc32ba713ccd69566156c11667b95c9cf5782d3d >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-invalid-identifier.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-invalid-identifier.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..309148586c46fee9db5b5e69524def87aa3848dc >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-invalid-identifier.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-invalid-identifier.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0bd4466e337495abe9b024589e9537539f89b3a3 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-ivec2-return-value.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-ivec2-return-value.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5652947be786970a40df649c21b875f92e1d8731 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..fc2e3752dc8cc71dd6537a9670471f29183905f0 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-ivec3-return-value.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-ivec3-return-value.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f6ac92897fc6dcf0a5c9dac4e6bcb83bdf2f39c7 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a400ffaec25c8a8f790aac27557a9afa982baf86 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-ivec4-return-value.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-ivec4-return-value.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..61859254d983c0aa3229f2dc135710dc64eef2bf >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ad2627a5a42a7f763e10dd785291d93f4e2847d7 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-limited-indexing.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-limited-indexing.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..919e9c0c538b0951fe3324dab428eed6351f2b23 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-limited-indexing.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-limited-indexing.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5cb975f0f5ed8a10d2b02b39a1f50a0cc174d7cb >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-long-line-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-long-line-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8b06fdf898471f72925ea85f7e28ea7f589ca771 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-long-line.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-long-line.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d6b9dd08e9a4351ce1a96f527969f4a885182fb7 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-non-ascii-error.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-non-ascii-error.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..31ccac321e1246bd117af90e2299af6dd065c071 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-non-ascii-error.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-non-ascii-error.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..12b76a4c4e0c8167d9d12efafd36169ff6506df0 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-precision.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-precision.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..570f4f22ac92419a6c631e7c3f664dda6df98d07 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-precision.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-precision.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b63f97e01c6de74fc5f90cb8ec6a8888da2bf246 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-quoted-error.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-quoted-error.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..fd7a2886c8b7dcd195a1c9f6348bd86f66a69964 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-quoted-error.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-quoted-error.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..bdadf34c815ff9891638293ba3f51394815c7636 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-reserved-words-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-reserved-words-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1663fc7e803e460000ea602d7296859ca1c11779 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-reserved-words.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-reserved-words.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8470322f1b891c6a238ce51ef2c16f0a9644cf73 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-too-many-uniforms-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-too-many-uniforms-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..bf19cc68d25b6bfa796019ce3464fc312591149d >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-too-many-uniforms.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-too-many-uniforms.html >new file mode 100644 >index 0000000000000000000000000000000000000000..94d1ec45c449756438f2e0cf5601ef8a64cc857d >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d94cf22a30cba2994ee655c65c674703eb1665d0 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9968c61e715ef0b3986b8082b4de18d7a3489530 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b7447c18d400c4160bcd81827c7e62ec540eb4ec >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a933cb646f71fc7ae199e173a10ee37d6c74810e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-vec2-return-value.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-vec2-return-value.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1a34dd929f44d67a6d470a5f0b75a8b4d9dfa59a >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-vec2-return-value.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-vec2-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e820d4b07aca6b0377f50c2367e72705dcc27cd2 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-vec3-return-value.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-vec3-return-value.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ac5d866c7d47efb2e8961d72386c29ac1960e627 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-vec3-return-value.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-vec3-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..89600d5b797dabbb5accfc5f306ef90b3b0a3441 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-vec4-return-value.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-vec4-return-value.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f0f9459932b0fadadf3435f8671d3717e53d40f0 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-vec4-return-value.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-vec4-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8e8b73bbd2f800c5aa0efbb129e1ad323b4a32e5 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b863e44f3f1c437a9c02b01970d56546afdaf204 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7f6238f2ba299bba9374825ea3bd7c851004294b >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-version-100.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-version-100.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..361f320608139b2651b81f45010b3eced4b5a7fe >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-version-100.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-version-100.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..dc8b73fcdbb762842efaf1a949c1fe71c72df593 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-version-100.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-version-100.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..eea07c2c016102a5edd4a02353c3867e580d1ab5 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-version-100.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-version-100.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..aa48bcd8ca4d0cf6707c6b3fabd466069033847d >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-version-120.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-version-120.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..69615bf3a9cf5eeabbff8628ce880c51ff49b720 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-version-120.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-version-120.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..86ac3dd60ef27d25edd7e0b1184550b2b2a39c98 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-version-130.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-version-130.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..fcff5cb3514f9fc7e1ab5ff86cf3facca46a7cec >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-version-130.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-version-130.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..93110b22490f0922c65f3e7948e005ffa45f0a1d >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-webgl-identifier.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-webgl-identifier.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e94e3a2efd52c45f01d5a517cb7a960f8d60ec86 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-webgl-identifier.vert.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-webgl-identifier.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7e4281347fba340b2a6a60671d344a5429715d29 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-with-while-loop-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-with-while-loop-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..dd89dd189825c1e3a1a7b9d9d5e397bfdd99e0c8 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-with-while-loop.html b/LayoutTests/webgl/conformance/glsl/misc/shader-with-while-loop.html >new file mode 100644 >index 0000000000000000000000000000000000000000..785c27d21514aeb68c66e927283779da44aa728d >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shader-without-precision.frag-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shader-without-precision.frag-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a934830c23e820e4d77b2644f07ab25e6a205a6d >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shader-without-precision.frag.html b/LayoutTests/webgl/conformance/glsl/misc/shader-without-precision.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9eb9293936fa879e2f11869c7c30e2bcb00647b1 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shaders-with-mis-matching-uniforms-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shaders-with-mis-matching-uniforms-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2e95502f8dc954c38ef67867e1b7fbd797ca3a91 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html b/LayoutTests/webgl/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html >new file mode 100644 >index 0000000000000000000000000000000000000000..754352ee860ad4b6b375b080a90a0b5672a0205e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shaders-with-mis-matching-varyings-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shaders-with-mis-matching-varyings-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3f9703aaf74d85b56b0522e7e76e606b5497913e >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shaders-with-mis-matching-varyings.html b/LayoutTests/webgl/conformance/glsl/misc/shaders-with-mis-matching-varyings.html >new file mode 100644 >index 0000000000000000000000000000000000000000..527ca495f0896fee31cea43f2f43dfa9402139dc >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shaders-with-missing-varyings-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shaders-with-missing-varyings-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c3c98548c8199fbbb23e9d38baa0c4e8276816e7 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shaders-with-missing-varyings.html b/LayoutTests/webgl/conformance/glsl/misc/shaders-with-missing-varyings.html >new file mode 100644 >index 0000000000000000000000000000000000000000..09b75f1040a599eb3fdd155ffb66e856e2d8c7f9 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/shared-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/shared-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c1b6006e32240dd3b30556b5dd366246ae6cc971 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/shared.html b/LayoutTests/webgl/conformance/glsl/misc/shared.html >new file mode 100644 >index 0000000000000000000000000000000000000000..18b7370e2742403fcaa58664e6a46f06da0ef5a3 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/struct-nesting-exceeds-maximum-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/struct-nesting-exceeds-maximum-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5085eca1c266b63e1e90232dd145a16bdd5dde9e >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/struct-nesting-exceeds-maximum.html b/LayoutTests/webgl/conformance/glsl/misc/struct-nesting-exceeds-maximum.html >new file mode 100644 >index 0000000000000000000000000000000000000000..73f7a5d330b4ea5c9c5a57e80a4e16a7f21e4a06 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/struct-nesting-under-maximum-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/struct-nesting-under-maximum-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..60b2b097e236bd77184636079aeffffec12fb709 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/struct-nesting-under-maximum.html b/LayoutTests/webgl/conformance/glsl/misc/struct-nesting-under-maximum.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1efbd407ce4751a7d7ef5bb21c01ef67f4234b68 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/misc/uniform-location-length-limits-expected.txt b/LayoutTests/webgl/conformance/glsl/misc/uniform-location-length-limits-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8ddba27f7a72be28028c0b0de2f3f20584867fe8 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/misc/uniform-location-length-limits.html b/LayoutTests/webgl/conformance/glsl/misc/uniform-location-length-limits.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ce9afc11cb0cef5ad1c2635449aa2a60ed35daf0 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/reserved/_webgl_field.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/reserved/_webgl_field.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ca4a46aaa65f9f4f583e7ab8748ecf75da3087c0 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/reserved/_webgl_field.vert.html b/LayoutTests/webgl/conformance/glsl/reserved/_webgl_field.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..885435c536454caa0d32811f6f895eda2289af32 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/reserved/_webgl_function.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/reserved/_webgl_function.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3cb4535b5dff7f3c0bd8af42b25362d08a058bd4 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/reserved/_webgl_function.vert.html b/LayoutTests/webgl/conformance/glsl/reserved/_webgl_function.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..37fbd1c2300443c239e8b2f0a911af7cbd50fd37 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/reserved/_webgl_struct.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/reserved/_webgl_struct.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a8ac8e5d22f8fa78d34bad9bdeecadbde8796b1d >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/reserved/_webgl_struct.vert.html b/LayoutTests/webgl/conformance/glsl/reserved/_webgl_struct.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..169c3f93b530995222ce2be79678083a0ccc8c46 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/reserved/_webgl_variable.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/reserved/_webgl_variable.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..01b3b01501009da0981f3c8f998f47674f600a50 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/reserved/_webgl_variable.vert.html b/LayoutTests/webgl/conformance/glsl/reserved/_webgl_variable.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ae1fc6961a6bce80a955d86c127b1da2c0788881 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/reserved/webgl_field.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/reserved/webgl_field.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3b466c32747e5c8eaadacef8349e1266742dc219 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/reserved/webgl_field.vert.html b/LayoutTests/webgl/conformance/glsl/reserved/webgl_field.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d70b748c2002b0a122d20abde95c43d2824b2e3e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/reserved/webgl_function.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/reserved/webgl_function.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a5dd9caa423673edef1a029604f601437724c7d4 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/reserved/webgl_function.vert.html b/LayoutTests/webgl/conformance/glsl/reserved/webgl_function.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..808c3c7bc0936310eeb8aa125a37fdbc1c971f9d >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/reserved/webgl_preprocessor_reserved-expected.txt b/LayoutTests/webgl/conformance/glsl/reserved/webgl_preprocessor_reserved-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7d382e7615f9b7428cdc960cf27a6d8bc8120344 >--- /dev/null >+++ b/LayoutTests/webgl/conformance/glsl/reserved/webgl_preprocessor_reserved-expected.txt >@@ -0,0 +1,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_preprocessor_reserved.html >+PASS >+ >diff --git a/LayoutTests/webgl/conformance/glsl/reserved/webgl_preprocessor_reserved.html b/LayoutTests/webgl/conformance/glsl/reserved/webgl_preprocessor_reserved.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f7e506a5e8d66a5bf5ac7ba2192b66553afe1aae >--- /dev/null >+++ b/LayoutTests/webgl/conformance/glsl/reserved/webgl_preprocessor_reserved.html >@@ -0,0 +1,18 @@ >+<!-- This file is 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_preprocessor_reserved.html</title> >+<script type="text/javascript" src="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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_preprocessor_reserved.html">../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_preprocessor_reserved.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_preprocessor_reserved.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/conformance/glsl/reserved/webgl_struct.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/reserved/webgl_struct.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b0de300939bea1689e75bca52aa52de33efcb897 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/reserved/webgl_struct.vert.html b/LayoutTests/webgl/conformance/glsl/reserved/webgl_struct.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..79104423be4a1877a0c4ae16f2449f040dde453b >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/reserved/webgl_variable.vert-expected.txt b/LayoutTests/webgl/conformance/glsl/reserved/webgl_variable.vert-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..82e4f035f44c4d49e329d9c087c5a3fbaa73ba63 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/reserved/webgl_variable.vert.html b/LayoutTests/webgl/conformance/glsl/reserved/webgl_variable.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f5879baf97c810b68a8bd8957ac06af290c7339f >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/samplers/glsl-function-texture2d-bias-expected.txt b/LayoutTests/webgl/conformance/glsl/samplers/glsl-function-texture2d-bias-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1ae2991d8072a14060e4f88854c1b9cc3f01c1ea >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/samplers/glsl-function-texture2d-bias.html b/LayoutTests/webgl/conformance/glsl/samplers/glsl-function-texture2d-bias.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b4674366f894e1b64049deda1e6ff5a09c120e36 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/samplers/glsl-function-texture2dlod-expected.txt b/LayoutTests/webgl/conformance/glsl/samplers/glsl-function-texture2dlod-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9da760e996b47d11c8b1303afee3d4306715e380 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/samplers/glsl-function-texture2dlod.html b/LayoutTests/webgl/conformance/glsl/samplers/glsl-function-texture2dlod.html >new file mode 100644 >index 0000000000000000000000000000000000000000..411eaf8a8fc6b3d31cf119d0851579ba84bfd94c >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/samplers/glsl-function-texture2dproj-expected.txt b/LayoutTests/webgl/conformance/glsl/samplers/glsl-function-texture2dproj-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5dcda70e635f0e4fd08bcf827ea905fe4fedeb75 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/samplers/glsl-function-texture2dproj.html b/LayoutTests/webgl/conformance/glsl/samplers/glsl-function-texture2dproj.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1675b457d398db40a427ed0b3e492b3554a8bdc5 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/variables/gl-fragcoord-expected.txt b/LayoutTests/webgl/conformance/glsl/variables/gl-fragcoord-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d031586a6496547410e100548dd19c427e00bb42 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/variables/gl-fragcoord.html b/LayoutTests/webgl/conformance/glsl/variables/gl-fragcoord.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2309331c2772b9d1fe88e230bd61954dcdab6f8c >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/conformance/glsl/variables/gl-frontfacing-expected.txt b/LayoutTests/webgl/conformance/glsl/variables/gl-frontfacing-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4d4fbc2f3dc219757b818f121ccb333adcb20f41 >--- /dev/null >+++ b/LayoutTests/webgl/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/conformance/glsl/variables/gl-frontfacing.html b/LayoutTests/webgl/conformance/glsl/variables/gl-frontfacing.html >new file mode 100644 >index 0000000000000000000000000000000000000000..589496cc359af23aa0c80dc98393b251bb2ac281 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../../fast/js/resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test 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/resources/webgl_test_files/conformance/glsl/00_test_list.txt b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/00_test_list.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..900765bf542344cd474da1ce184018712f705d5b >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/00_test_list.txt >@@ -0,0 +1,9 @@ >+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 >+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/resources/webgl_test_files/conformance/glsl/functions/00_test_list.txt b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/00_test_list.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..dd06ea05206d9770bbdec970ef10466c880062ac >--- /dev/null >+++ b/LayoutTests/webgl/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-abs.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-abs.html >new file mode 100644 >index 0000000000000000000000000000000000000000..218bdd18f8cfe3552cc6bab6ed5df537b36c544f >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-abs.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>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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-acos.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-acos.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1f1c4d5293ecd0859cc4895b6b5b0112ca6c91ad >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-acos.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 acos function test</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-asin.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-asin.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e275aa69e79138c2ecd44f83788822a7ebf407a0 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-asin.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 asin function test</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan-xy.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan-xy.html >new file mode 100644 >index 0000000000000000000000000000000000000000..725824160ab94a37e6532f4ee87e14453fd5c1a2 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan-xy.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 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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f1986a98cf2b7454f52f14bda6f4a74f27ad131a >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan.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 atan function test</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-ceil.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-ceil.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9ae010588dbc58a24c24a8cbd50af46cdab84cf3 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-ceil.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 ceil function test</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-float.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6647fdd436fd9a36ca3bb1e1652b743de1768db3 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-float.html >@@ -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. >+*/ >+ >+--> >+ >+<!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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-gentype.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-gentype.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6fc3f227d48468201deec76cfe885f9f89babc06 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-gentype.html >@@ -0,0 +1,81 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF 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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cos.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cos.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1b9942bf22685ce0cea84ee8aa3ddd6f00b666c6 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cos.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>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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cross.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cross.html >new file mode 100644 >index 0000000000000000000000000000000000000000..84f8897a928e396ea63844aa68abcb602e52152f >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cross.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 cross function test</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-distance.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-distance.html >new file mode 100644 >index 0000000000000000000000000000000000000000..77b5d5d350d05b056622f5f9986847a83237e49b >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-distance.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>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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-dot.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-dot.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6db9ab2e81c665e1ac45e6c75188fcc6e11d5d88 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-dot.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>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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-faceforward.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-faceforward.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0be010660be697cb2c88a9ee780bed16ce43850d >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-faceforward.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>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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-floor.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-floor.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0455005c4dcabafb35f04fe2df632747dac11f0e >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-floor.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 floor function test</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-fract.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-fract.html >new file mode 100644 >index 0000000000000000000000000000000000000000..786ee2d4fe9462ab3b4298e5e32f8b58a7ce1492 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-fract.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 fract function test</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-length.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-length.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4abee97dea9c6d4e9ec77f4daba84b87f65cffce >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-length.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 length function test</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-lessThan.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-lessThan.html >new file mode 100644 >index 0000000000000000000000000000000000000000..cb8c92060ee78cbc3641e5c3cd84cc2e27005a8f >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-lessThan.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 lessThan function test</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-float.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..28efac2a901c58ee818a8cadb00a8ae8999ed3b8 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-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 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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-gentype.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-gentype.html >new file mode 100644 >index 0000000000000000000000000000000000000000..dacd4509829272e65f0fa6346dba6e4e5efc5709 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-gentype.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 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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-float.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5aa4001b52fb8079de381f0ef9e338304f628442 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-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 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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-gentype.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-gentype.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9111c65f96b4eb0f3f5d7be06ea3299b19a02017 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-gentype.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 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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-float.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c17249b9c78d9f4c746dc10763523be533347f8f >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-float.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>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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-gentype.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-gentype.html >new file mode 100644 >index 0000000000000000000000000000000000000000..84aa68b323c35f5ddb2c356593a0853fa549ac7c >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-gentype.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>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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-float.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f397ae9f04d00be85583e6a9de97dfafaae4ee78 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-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 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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-gentype.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-gentype.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1e62861c8ed79fe4fe862796de2abadf1b808af5 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-gentype.html >@@ -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. >+*/ >+ >+--> >+ >+<!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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-normalize.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-normalize.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8bc26c526ad28b9916a60fe0f5a22219bd7214e1 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-normalize.html >@@ -0,0 +1,81 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF 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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-reflect.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-reflect.html >new file mode 100644 >index 0000000000000000000000000000000000000000..357774785d7d165c7f1ed65393fbc7b05e927ff7 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-reflect.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>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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-refract.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-refract.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d679672a3712220ca000d7d9eb61fdcec04f9a0e >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-refract.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"> >+ <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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sign.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sign.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a010973af236336cfc1e5f0b39995406697aa8af >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sign.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 sign function test</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sin.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sin.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a64ae91f4bb2e302c6e25f931dc7486cf52615cf >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sin.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 sin function test</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-float.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8f40fee698db383ba50a2e54bed866856f8661e7 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-float.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 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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-float.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-float.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5efdba3adb68d90331d60c53a3142c6c8059c758 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-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 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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-gentype.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-gentype.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e1a1552098938287d191f4c7544f293ed60e01e7 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-gentype.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 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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/functions/glsl-function.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function.html >new file mode 100644 >index 0000000000000000000000000000000000000000..06bb0e219c6cbb6fa2eb6b4673916c2cad448b89 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/functions/glsl-function.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>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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/00_test_list.txt b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/00_test_list.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d700b29a5632b862e33693e0adbdf6c0ad3e5684 >--- /dev/null >+++ b/LayoutTests/webgl/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/resources/webgl_test_files/conformance/glsl/implicit/add_int_float.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2334d74f7390ef077081346eddb5c5683ba6b6e7 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2353f64d2627954e06ba8deb590c3893adff91c5 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ac7d697f112e964d745efc2ee9d1ee51e9b477cd >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7cc4b630790476865469104f38b2d4f641ea390a >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8167c657003d37ebd0f302b3b579d7fd0adeeaa9 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3415a34675957c5edc80e01275570f125443800c >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5312b8d6e64f676c793de525c73705cf1c52adcc >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/add_ivec2_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/add_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f6efd7565e153eb1d369b554cd85a304b66dfbe8 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/add_ivec3_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/add_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..fe99d04ce0eba7f55cde5ff12f06bc65b6716398 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/add_ivec4_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/add_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..321aa906e4777e7b1ec805d85e2dafbf6ef2b3f5 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/assign_int_to_float.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/assign_int_to_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..56455ad341acf8c64c659efa85d352a124bbe3db >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..abef7f1d3e0fc533c3cd7244dde2c110378fa230 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f12836bffb4249177ed83553be9260546fdf0519 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9b6eaa0f23b10adef0b259eba0e1313a7095cc49 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/construct_struct.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/construct_struct.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5c2eecbab45e0ef4a8e2a045f0eb32174da029e8 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/divide_int_float.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9593d1760c08d447f802fb4df258dabfc26b3127 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..60667ff204b90bf09219abc96ac310ea57983b98 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..21adafd29d9d59976fab47e42c9757ab4e02bcaa >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3835b8af77556dd927b5dd8467cb9314d4ceb486 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0a879e1ec947bcc5dd0d48635b8251825d7afe17 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..74a39fb558c815efe2221181150281724d7bdfc6 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5a67db02aaa9cc32f3234bed031309373d4b720d >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec2_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a7edf9ff6bf4577ad68cb3724583c7cb02efc902 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec3_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b3ddc9c1975726947f5a667ebf3d8f675a64dd38 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec4_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3e13efea3efdf03a25294405cc6a18014ff8cc71 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/equal_int_float.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/equal_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..333e0c46ddba6fa35fe4f4501810a85a7cd3a565 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec2_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..42f20a2a276179dd4cdf183cad321a2422822160 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec3_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..09d59bb0d7be4a7b58a0f860852435a9e8e052e4 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec4_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6fb224fd1d695a557fe7740bfc13296a79411360 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/function_int_float.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/function_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6713447b4903dd5d2abb0a116745e980844e3389 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/function_ivec2_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/function_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4a0231feb92babeb908cd532463842f5337d97e3 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/function_ivec3_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/function_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1a8867272e43d64257ff0c6146375ff8d3aea936 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/function_ivec4_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/function_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4babbad6686f59a5b0d1309d9d35f46feeb715e4 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/greater_than.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/greater_than.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8d705888983335a0130b4b5f0b744c316c470ef7 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/greater_than_equal.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/greater_than_equal.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f09ebe90f329336658933656e880da6542a092e2 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/less_than.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/less_than.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7e7745ea4727d3ca8a2f3e65b1b41a35762dcc4a >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/less_than_equal.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/less_than_equal.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..130ca89fbb5bf277dfe22c58c0fef622a95eaf32 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_float.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1271f935dbd75f6545f1402a94622cad2a052c86 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e6c83bbc385d747e413e5484e8f4302624bf7003 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a2c455197c5bb4333cc01f1ff89132d13758dcf8 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0f69b9ad7642875c0637232e63c7593b54dd6d8f >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2542387d15c17113dce54320d5b6f3b168866365 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..93494942f655e99d5a4d624ae814190f9baec5a2 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..13a4850b92f43535ca3e86ace59941f607b2efc6 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..56e0b7235d587eef7e8bad8072935f8c6a4d94aa >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2196322fa377b3aead4f08ee1538c25202051b62 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3349527fa54ad9b4885aae02da90f239c70ae793 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/not_equal_int_float.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/not_equal_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..bb12b8cdcf0da261128aacf3d2df454aa8e8e480 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b78d9a35f21af206bfec4cb297f90235cf71d325 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8583a1af9f27047fa267330066d3e22ed5d36a6e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b380eb595c2d6b287e4b7eed7d4796ce1ab12c48 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_float.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5de3f691f9949c8744f5b57b8bbce3ca26202adf >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..878263e39f4ab59b18a0c727ca6c7900640dff6e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c29a0ecae61335e4987dbdf84a675834ad749f1e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..73a907b54592abba339766c2fb2be232a9f3f4e8 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..47e4df979534a21f60f5d5d1f85fc682616878ba >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9e80f54504765426c56eff80fa89daec7307c187 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..251291477b2ca495f380abf6d1d637e46d4962bc >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..01cb8483b9972a2cfd97ac2896599fa55eaac5fb >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f9872360d86c3ed9bd8ced429e2aa85ba7c311fa >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3dd0931c1ea6fd8056c161c6e5988bcbd16e77d8 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/ternary_int_float.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/ternary_int_float.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c32c0eaaa6c41d09f2f0d59b8d6328326fe35e48 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..bdb687a21ee8272dcea941b079beabeeae7a82ca >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8d520d830039dc157df9a4cfb70ac3446e4f29fb >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..17806e98a19f12d0345e8678eb40e2d58f800c87 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/literals/00_test_list.txt b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/literals/00_test_list.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..af890e2d5e9d077ef3cd619ff4bc344411892026 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/literals/00_test_list.txt >@@ -0,0 +1 @@ >+float_literal.vert.html >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/matrices/00_test_list.txt b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/matrices/00_test_list.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..196b782b3db0d9fc55cf0cd23403e900640053e6 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/matrices/00_test_list.txt >@@ -0,0 +1,2 @@ >+glsl-mat4-to-mat3.html >+ >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/matrices/glsl-mat4-to-mat3.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/matrices/glsl-mat4-to-mat3.html >new file mode 100644 >index 0000000000000000000000000000000000000000..40bc762f3acfa8a439b668e9040a1773c890f79f >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/matrices/glsl-mat4-to-mat3.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>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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/webgl-test-utils.js"> </script> >+ <script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/00_test_list.txt b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/00_test_list.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..51187a79abb7542616c2a7a28f258498ca262f9b >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/00_test_list.txt >@@ -0,0 +1,88 @@ >+attrib-location-length-limits.html >+embedded-struct-definitions-forbidden.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 >+non-ascii-comments.vert.html >+non-ascii.vert.html >+--min-version 1.0.2 re-compile-re-link.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 shader-with-257-character-define.html >+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 >+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 >+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 >+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 >+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.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.2 shaders-with-varyings.html >+shared.html >+struct-nesting-exceeds-maximum.html >+struct-nesting-under-maximum.html >+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 >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/attrib-location-length-limits.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/attrib-location-length-limits.html >new file mode 100644 >index 0000000000000000000000000000000000000000..21e54c2407d8d66e8fccd017449b93140a1c6dfd >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/attrib-location-length-limits.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. >+*/ >+ >+--> >+<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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test.js"> </script> >+<script src="../../resources/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 attribLoc = gl.getAttribLocation(program, "vPosition0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456"); >+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"); >+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, "vPosition01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567"); >+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, "vPosition01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567")', '-1'); >+wtu.glErrorShouldBe(gl, gl.INVALID_VALUE); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../resources/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/embedded-struct-definitions-forbidden.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/embedded-struct-definitions-forbidden.html >new file mode 100644 >index 0000000000000000000000000000000000000000..97f13646d9deabe0f848bce3ac920b506fe00e07 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/foo b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/foo >new file mode 100644 >index 0000000000000000000000000000000000000000..a01e38515715f949f4e64884ef906300bb1bef8d >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/foo >@@ -0,0 +1,163 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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="fshaderArrayTest" type="x-shader/x-fragment"> >+ precision mediump float; >+ uniform $(type) u_uniform[$(numTestType)]; >+ void main() >+ { >+ gl_FragColor = $(code); >+ } >+</script> >+<script id="fshaderArrayTest" 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 vSrc = wtu.getScript("vshader"); >+ >+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)])", }, >+ { type: "mat2", componentsPerRow: 4, rows: 1, 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 fArrayTestSource = wtu.getScript("fshaderArrayTest"); >+ >+var maxVertexUniformVectors = gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS); >+var maxFragmentVectors = gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS); >+var tests = []; >+ >+for (var ii = 0; ii < uniformTypes.length; ++ii) { >+ var info = uniformTypes[ii]; >+ // Compute the maxiumum amount of this type allowed in a single array. >+ var numVars = Math.floor(maxFragmentVectors / info.rows); >+ // Test array[1] of the type >+ var code = wtu.replaceParams(info.code, {id: "", index: 0}); >+ tests.push({ >+ vShaderSource: vBaseSource, >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(fArrayTestSource, {numTestType: 1, code: code}, info), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "fragment shader with uniform array of " + info.type + " with 1 element should succeed", >+ }); >+ // Test array[max] of the type >+ // Note: We can't test this as actual GL drivers are only required to be able to >+ // do the minimum number. After that it can fail for any reason. >+ if (false) { >+ var code = wtu.replaceParams(info.code, {id: "", index: numVars - 1}); >+ tests.push({ >+ vShaderSource: vBaseSource, >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(fArrayTestSource, {numTestType: numVars, code: code}, info), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "fragment shader with uniform array of " + info.type + " with " + numVars + " elements (the maximum) should succeed", >+ }); >+ } >+ >+ // Test array[max + 1]. WebGL requires this to fail. >+ var code = wtu.replaceParams(info.code, {id: "", index: numVars}); >+ var uniforms = []; >+ var codes = []; >+ for (var ii = 0; ii <= numVars; ++ii) { >+ uniforms.push("uniform " + info.type + " u_uniform" + ii + ";"); >+ codes.push(wtu.replaceParams(info.code, {id: ii, index: ii})); >+ } >+ tests.push({ >+ vShaderSource: vBaseSource, >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(fArrayTestSource, {uniforms: uniforms.join("\n"), code: codes.join(" + \n ")}, info), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "fragment shader with " + (numVars + 1) + " uniforms of " + info.type + " (one past maximum) should fail", >+ }); >+ >+ // Test max uniforms of type. >+ // Note: We can't test this as actual GL drivers are only required to be able to >+ // do the minimum number. After that it can fail for any reason. >+ if (false) { >+ } >+ >+ // Test max+1 uniforms of type. >+ >+} >+ >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-2types-of-textures-on-same-unit.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-2types-of-textures-on-same-unit.html >new file mode 100644 >index 0000000000000000000000000000000000000000..43c1c0966275637541f5d9445c51ab0507d942aa >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-2types-of-textures-on-same-unit.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>WebGL GLSL 2 types of textures on same unit conformance test.</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/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); >+ 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="../../../resources/js-test-post.js"></script> >+ >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-function-nodes.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-function-nodes.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ba35bae9002e8636ffc6d205b9d7a134d968ccd5 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-function-nodes.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>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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test.js"> </script> >+<script src="../../resources/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="../../../resources/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-long-variable-names.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-long-variable-names.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5e874016e330440b5c698240787255ef605035ea >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-long-variable-names.html >@@ -0,0 +1,248 @@ >+<!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>glsl long variable name mapping tests</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/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="../../../resources/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-vertex-branch.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-vertex-branch.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8eececbb1601ec2b8eaeb492535bf486cec93c52 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/glsl-vertex-branch.html >@@ -0,0 +1,151 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test.js"> </script> >+<script src="../../resources/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"> >+#if defined(GL_ES) >+precision mediump float; >+#endif >+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="../../../resources/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/include.vs b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/include.vs >new file mode 100644 >index 0000000000000000000000000000000000000000..7096579f082a34d528585732ec24ca866f0876b4 >--- /dev/null >+++ b/LayoutTests/webgl/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/resources/webgl_test_files/conformance/glsl/misc/large-loop-compile.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/large-loop-compile.html >new file mode 100644 >index 0000000000000000000000000000000000000000..262099a22a2f6a4e5a24f051dc4b635af51feed3 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/large-loop-compile.html >@@ -0,0 +1,207 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/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 highp vec4; >+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; >+initTestingHarnessWaitUntilDone(); >+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(); >+ var console = document.getElementById("console"); >+ var vSource = document.getElementById("vertexShader").text; >+ var fSource = document.getElementById("fragmentShader").text; >+ wtu.addShaderSource(console, "test vertex shader", vSource); >+ var vShader = wtu.loadShader(gl, vSource, gl.VERTEX_SHADER); >+ wtu.addShaderSource(console, "test fragment shader", fSource); >+ var fShader = wtu.loadShader(gl, fSource, gl.FRAGMENT_SHADER); >+ if (vShader && fShader) { >+ var program = gl.createProgram(); >+ gl.attachShader(program, vShader); >+ gl.attachShader(program, fShader); >+ gl.linkProgram(program); >+ gl.getProgramParameter(program, gl.LINK_STATUS); >+ } >+ 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/resources/webgl_test_files/conformance/glsl/misc/non-ascii-comments.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/non-ascii-comments.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..381081c60459dfc80fe4e854931533e0c9a752cf >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/non-ascii-comments.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/non-ascii.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/non-ascii.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..33327e460a412866353679d58b32510e02e896bc >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/non-ascii.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/re-compile-re-link.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/re-compile-re-link.html >new file mode 100644 >index 0000000000000000000000000000000000000000..90377a8ea27ce6d4f16d1129c18789b30feb5313 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/re-compile-re-link.html >@@ -0,0 +1,174 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test.js"> </script> >+<script src="../../resources/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) >+} >+ >+glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors"); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../resources/js-test-post.js"></script> >+ >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-define.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-define.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0a43965053025a31ee82307a5e0786c1ae43ea56 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-identifier.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-identifier.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7b726b2d3d3636495345f451356cada13a785309 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-identifier.frag.html >@@ -0,0 +1,131 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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([ >+ { vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShader256', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'shader with 256 character identifier should succeed' >+ }, >+ { vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShader_before', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'shader with 256 character identifier that starts with underscore should succeed' >+ }, >+ { vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShader_after', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'shader with 256 character identifier that ends with underscore should succeed' >+ }, >+ { vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShader256_odd', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'shader with 256 character identifier with odd characters as underscores should succeed' >+ }, >+ { vShaderId: undefined, >+ vShaderSuccess: true, >+ 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/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-define.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-define.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ab122055318ac53ce46186bc9bca937a6cc0f09e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-identifier.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-identifier.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f02ecd96117fcc69e9aa79325c015aa19cd6b8b7 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-identifier.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b94062855407599566ce23d0d5884eafeb8aa5e9 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..12a60c90687cfd3d7cd4fe79f0e07cd27d686324 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..16de0fec403a07949e08eb8a1f636b2b45fdf6fd >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-uniform.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-uniform.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1115daae031645e90101c5469b99ea4a344f2ba3 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-uniform.html >@@ -0,0 +1,134 @@ >+ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test.js"> </script> >+<script src="../../resources/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> >+</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.drawQuad(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.drawQuad(gl, [0, 0, 0, 0]); >+wtu.checkCanvas(gl, [255, 255, 255, 255], "Should be white"); >+ >+glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../resources/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-array.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-array.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0ce93d0308fdadfea9dac903d45c2c91cb47e37f >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-struct.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-struct.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..03660695894ee3e372d6df537ffccfcc00256c78 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-struct.vert.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-clipvertex.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-clipvertex.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5438b5d2a81a801bc3e8f82fbebc3d65700612ed >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-clipvertex.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-assignment.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-assignment.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a542a2a126b376838550dd48deffa946eb0b9d34 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-assignment.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 GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+<script src="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-conditional-assignment.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-conditional-assignment.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1d80522cd096f465dc8e8ba28f238fdeef80cac6 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-conditional-assignment.html >@@ -0,0 +1,223 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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([ >+{ vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShaderAGreaterThanBCheckR', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShaderAGreaterThanBCheckAB', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShaderAGreaterThanBCheckT0', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShaderAGreaterThanBCheckT1', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShaderBGreaterThanACheckR', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShaderBGreaterThanACheckAB', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShaderBGreaterThanACheckT0', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShaderBGreaterThanACheckT1', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+} >+]); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping-negative.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping-negative.html >new file mode 100644 >index 0000000000000000000000000000000000000000..871d5b91733b7f0d31602bc635b0324bbb96307d >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping-negative.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping.html >new file mode 100644 >index 0000000000000000000000000000000000000000..89b69e59ebae1fd380fae5f8af78f36a379f9e3c >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping.html >@@ -0,0 +1,68 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..fba9c2081c44e5eb35ab5ca00302fb6519d268aa >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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; >+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/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d883ffb82cd6191b3204afb8808c7f51a318d43c >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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; >+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/resources/webgl_test_files/conformance/glsl/misc/shader-with-define-line-continuation.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-define-line-continuation.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..16284ed8b03c9c4559cdded9485bc591305929ac >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-define-line-continuation.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9739a617ad4126f3c2e93fe8d900397a2a374016 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0d2a4e4724d24d522e23bbf71b0df8904fcf15a9 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-do-loop.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-do-loop.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7783037f46332399260506db6b3bcd6a44a4edea >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-error-directive.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-error-directive.html >new file mode 100644 >index 0000000000000000000000000000000000000000..76c354f9d626d867eab53b647e608444aa8750a5 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-error-directive.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>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="../../../resources/desktop-gl-constants.js" type="text/javascript"></script> >+<script src="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e514cca38d77899610a77bf7c04b1680d140f16f >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-float-return-value.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-float-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1e1b7a846b20ea8115578fc817065f24a6a88c97 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-loop.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-loop.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e9c97b280bee1e113321be5d2080d3d0238f56be >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-loop.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>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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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 highp float; >+uniform float time; >+uniform vec2 resolution; >+ >+// Saw-tooth function that is synced with the demo music (128bpm) >+float gBeat=fract(time*3.2/3.); >+ >+// 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() >+{ >+ // 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/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-scoping.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-scoping.html >new file mode 100644 >index 0000000000000000000000000000000000000000..52e564ef61cffb17dceb9d5773745a5ae0f14f8b >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-frag-depth.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-frag-depth.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c3002e77cb04f6936a62f45a3a9198128eb3d900 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-recursion.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-recursion.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..85b44583a18e3bb47c159f6d156556b54f06bd69 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-recursion.frag.html >@@ -0,0 +1,68 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-scoped-struct.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-scoped-struct.html >new file mode 100644 >index 0000000000000000000000000000000000000000..697383cbb91eb22967d51ba11aa9f03fa877dfa8 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-functional-scoping.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-functional-scoping.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a1beb7b53ecd89f7b98a769d8248eabcd9608fb3 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-functional-scoping.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-glcolor.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-glcolor.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8fb5d51ab61c47069ae4ba06fce7f8720a0e05aa >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-glcolor.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-1.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-1.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e38b5d40c4764b3bd95d4acfe4fdb93bd1d1c524 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-1.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-symbol.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-symbol.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d29035764e539d042ab872aaeaa4bc8c5272eed0 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-symbol.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c9ae6ef9d65232b2b86c9e3ec4820e032824dfe4 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-glprojectionmatrix.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-hex-int-constant-macro.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-hex-int-constant-macro.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6f72719c5cf9c6d835d025429bb05596c617a887 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-hex-int-constant-macro.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c515098accacd919b442d2d8d9fa2d0aef9cf8f1 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-include.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-include.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6d21fdfb2fa1f29038ffc1360c231523a8e89f14 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-include.vert.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-int-return-value.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-int-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..78c52f225e4f8fefa47b825a54980c859517f640 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-int-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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-invalid-identifier.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-invalid-identifier.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b42c48babf8e7cf491124e0edbf496287a5cb3e5 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-invalid-identifier.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..97ba495c54c36730b9c880295cfb82ea4d09f7a2 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec2-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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2c6b800905308b2c35eeda362fc966cc20189425 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec3-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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d4edf8f7322acd728b501d12520281cdfd8e7668 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec4-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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-limited-indexing.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-limited-indexing.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7c0df24f42a32c7ca6a953648e6862316f53f83c >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-long-line.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-long-line.html >new file mode 100644 >index 0000000000000000000000000000000000000000..044e0ec540817836e3af2a0a617425c38a920141 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-long-line.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>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="../../../resources/desktop-gl-constants.js" type="text/javascript"></script> >+<script src="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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([ >+ { vShaderId: undefined, >+ vShaderSuccess: true, >+ 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/resources/webgl_test_files/conformance/glsl/misc/shader-with-non-ascii-error.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-non-ascii-error.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..17fd4dc546356ad15da79213a912a6c0270078fa >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-precision.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-precision.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3d99eff1171d837e3ceff360adc4cc89182a088c >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-quoted-error.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-quoted-error.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..971e9b051dee281c0e5477a06fb5fa731d4cb6c2 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b1c98645c3c4095a88851bb45151a80613f6ff4d >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words.html >@@ -0,0 +1,292 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/glsl-conformance-test.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 c = document.getElementById("console"); >+ >+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,1); >+} >+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); >+ >+ wtu.addShaderSource(c, "vertex shader", vs); >+ wtu.addShaderSource(c, "fragment shader", fs); >+ >+ var success = true; >+ var program = wtu.loadProgram(gl, vs, fs, function(msg) { >+ //debug(msg); >+ success = false; >+ }); >+ 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/resources/webgl_test_files/conformance/glsl/misc/shader-with-too-many-uniforms.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-too-many-uniforms.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5b2777490c7e69a7724a4d6bdbfa9826aef361e9 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-too-many-uniforms.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"> >+<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="../../../resources/desktop-gl-constants.js" type="text/javascript"></script> >+<script src="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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); >+var tests = [ >+ { desc: "using all uniforms in vertex shader should succeed", >+ maxUniformVectors: maxVertexUniformVectors, >+ 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, >+ 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/resources/webgl_test_files/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9eb521d7d66c8fc4f413b43d03bf27a2396bb112 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..86279c91bfb2bf5b5876cfc4da89def3e537b53e >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec2-return-value.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec2-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5d6f21a5dabf5a58b8d6c73a02df9e0a1e521416 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec2-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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec3-return-value.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec3-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..985f9044df225db7669d956c5dafc49f73869c88 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec3-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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-return-value.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-return-value.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..773dd0ff742ca7830e4ffad75ddc62692390782d >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9f302f8cf6c6252ae078ade465e07edf901d8c15 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ae823f94b4d8b751bf181a06c82ce82a55d204a8 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..17b629a4c4ac43a909638367f020cdc6175ad5ee >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-120.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-120.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2f895de2b02c02e33268bd6ce419823b56597c43 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-130.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-130.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..50266c9689f190d52a20615dff8d35228be80b40 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-webgl-identifier.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-webgl-identifier.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f782fb1173347617b4b9c058d385b91ba3448276 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-with-while-loop.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-while-loop.html >new file mode 100644 >index 0000000000000000000000000000000000000000..df50c6684923e8ecee9cd2df8cd7ed82985e22ee >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-while-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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shader-without-precision.frag.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-without-precision.frag.html >new file mode 100644 >index 0000000000000000000000000000000000000000..16f2eeabb34657ddd5df3440452bf17c16a3c38a >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4d923f776cb4fffcfa7405a4e38ca1ef0059b10e >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-uniforms.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 GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> >+<script src="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-varyings.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-varyings.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1f092a41caee8a2ce8f8ca5f8b23878dd32db5fc >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shaders-with-missing-varyings.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shaders-with-missing-varyings.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2a3fb0123a8d035e84c4ea25d286971a695ad144 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/shared.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shared.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6b2b9f57a2b475fc6da2074ca016cae5e136b915 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shared.html >@@ -0,0 +1,173 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-exceeds-maximum.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-exceeds-maximum.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2444ee8fbfb956d80cc9266a90e830cd01fe501b >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-under-maximum.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-under-maximum.html >new file mode 100644 >index 0000000000000000000000000000000000000000..980563dcc4572ec3bb54843799f6cd33057792df >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/misc/uniform-location-length-limits.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/uniform-location-length-limits.html >new file mode 100644 >index 0000000000000000000000000000000000000000..dc7a156f890b709c73c93eb334b23bf7b4c6bfc3 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/uniform-location-length-limits.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. >+*/ >+ >+--> >+<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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test.js"> </script> >+<script src="../../resources/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="../../../resources/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/00_test_list.txt b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/00_test_list.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b79d26bfc76797d458489387fcf5c6342935776b >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/00_test_list.txt >@@ -0,0 +1,9 @@ >+_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 >+--min-version 1.0.2 webgl_preprocessor_reserved.html >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/_webgl_field.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/_webgl_field.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..20f344fa2ebfaded852a8e36db126755197c4332 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/reserved/_webgl_function.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/_webgl_function.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e4aac01cd28d114960d27c33f1f04c04bdbb9b86 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/_webgl_function.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/reserved/_webgl_struct.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/_webgl_struct.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..76a81781ea1eb3d6231bd62e248935a74269599b >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/_webgl_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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/reserved/_webgl_variable.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/_webgl_variable.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..132e722cf52a177cf5cb44745a0710084795a4ae >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/_webgl_variable.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/reserved/webgl_field.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_field.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e27ee3b69db6f4cedf8ea8af946a762720d282a3 >--- /dev/null >+++ b/LayoutTests/webgl/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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/reserved/webgl_function.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_function.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a71658be7076c36b47fbaa861b6f36404131823a >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_function.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/reserved/webgl_preprocessor_reserved.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_preprocessor_reserved.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ab7809fd78a4b760d5a975d61d06ff93f141d4db >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_preprocessor_reserved.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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 macro names should fail >+void main(){ >+ #define FOO__BAR 1 >+ #define FOO__blubb(a) a+1 >+ gl_Position = vec4(0.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_struct.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_struct.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c94ebed506452895a5012cb967aa7b9515b9ba53 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/reserved/webgl_variable.vert.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_variable.vert.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1687b1b8e39f47d30e1087d3ed40bf5429b36098 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/reserved/webgl_variable.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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test-utils.js"></script> >+<script src="../../resources/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/resources/webgl_test_files/conformance/glsl/samplers/00_test_list.txt b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/samplers/00_test_list.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a17d8c52df214864a2131374a2da5411511d9678 >--- /dev/null >+++ b/LayoutTests/webgl/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 >+ >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2d-bias.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2d-bias.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0a1d0a739d85cb36fbeba7e31f1c04d49c815729 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2d-bias.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 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test.js"> </script> >+<script src="../../resources/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.drawQuad(gl); >+ wtu.checkCanvas( >+ gl, color.color, >+ "256x256 texture drawn to 256x256 dest with bias = " + ii + >+ " should be " + color.name); >+} >+glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors."); >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../../resources/js-test-post.js"></script> >+ >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dlod.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dlod.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ad6af01b1a8aea02388e190499601db1d163dda9 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dlod.html >@@ -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. >+*/ >+ >+--> >+ >+<!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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test.js"> </script> >+<script src="../../resources/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.drawQuad(gl); >+ wtu.checkCanvas( >+ gl, color.color, >+ "256x256 texture drawn to 256x256 dest with lod = " + ii + >+ " should be " + color.name); >+ } >+ glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors."); >+} >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../../resources/js-test-post.js"></script> >+ >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dproj.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dproj.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ef0a1e5b505ae644a23ada40f6cda811d4be8551 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dproj.html >@@ -0,0 +1,140 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR 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="../../../resources/js-test-pre.js"></script> >+<script src="../../resources/webgl-test.js"> </script> >+<script src="../../resources/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.drawQuad(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); >+ } >+ } >+ } >+} >+glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors."); >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../../resources/js-test-post.js"></script> >+ >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/variables/00_test_list.txt b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/variables/00_test_list.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..670b02f5215fc0ac2ce76e7b665b2942d9425fcf >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/variables/00_test_list.txt >@@ -0,0 +1,3 @@ >+gl-fragcoord.html >+gl-frontfacing.html >+gl-pointcoord.html >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6feb4bb3bfa5bdb85428f6e1dcacf180fb4e0706 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord.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="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/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="../../../resources/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/variables/gl-frontfacing.html b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/variables/gl-frontfacing.html >new file mode 100644 >index 0000000000000000000000000000000000000000..732c8510448e6e2186991c8781c17b3650e4f316 >--- /dev/null >+++ b/LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/variables/gl-frontfacing.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>gl-fragcoord Test</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <script src="../../../resources/js-test-pre.js"></script> >+ <script src="../../resources/webgl-test.js"> </script> >+ <script src="../../resources/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.setupQuad(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="../../../resources/js-test-post.js"></script> >+ >+</body> >+</html>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
kbr
:
review+
buildbot
:
commit-queue-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 109115
: 186962