From 444179b6b6dd0da178c6c65f99f63e9524c83cd8 Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Mon, 26 Mar 2012 15:10:40 -0400 Subject: [PATCH] Bug 734423 - Upgrade WebGL conformance test suite to 1.0.1 in-principle-final (r17063) - no review 1.0.1 is in principle a done thing. This is also the occasion to do a clean upgrade, by rm and cp, instead of applying a diff. Upstream: https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/conformance-suites/1.0.1/ --- content/canvas/test/webgl/00_test_list.txt | 12 +- content/canvas/test/webgl/README.mozilla | 18 +- content/canvas/test/webgl/README.txt | 56 +- .../test/webgl/conformance/00_readme.txt | 26 +- .../test/webgl/conformance/LICENSE_CHROMIUM | 30 + .../attribs/gl-vertex-attrib-zero-issues.html | 8 +- .../canvas/buffer-offscreen-test.html | 5 +- .../canvas/buffer-preserve-test.html | 2 +- .../drawingbuffer-static-canvas-test.html | 15 +- .../canvas/drawingbuffer-test.html | 15 +- .../webgl/conformance/context/constants.html | 1 - ...ext-attribute-preserve-drawing-buffer.html | 113 ++ .../conformance/extensions/00_test_list.txt | 2 +- .../compressed-textures/4x4.rgb.dxt1.js | 3 - .../compressed-textures/4x4.rgba.dxt1.js | 3 - .../compressed-textures/4x4.rgba.dxt3.js | 3 - .../compressed-textures/4x4.rgba.dxt5.js | 3 - .../compressed-textures/4x4.rgba.raw.js | 3 - .../compressed-textures/8x8.rgb.dxt1.js | 3 - .../compressed-textures/8x8.rgba.dxt1.js | 3 - .../compressed-textures/8x8.rgba.dxt3.js | 3 - .../compressed-textures/8x8.rgba.dxt5.js | 3 - .../compressed-textures/8x8.rgba.pvrtc4bpp.js | 3 - .../compressed-textures/8x8.rgba.raw.js | 3 - .../extensions/oes-standard-derivatives.html | 24 +- .../extensions/oes-texture-float.html | 26 +- .../webgl-compressed-texture-s3tc.html | 614 ++++++++ .../extensions/webgl-debug-renderer-info.html | 3 +- .../extensions/webgl-debug-shaders.html | 3 +- ...ebgl-experimental-compressed-textures.html | 520 ------- .../glsl/functions/glsl-function-acos.html | 83 +- .../glsl/functions/glsl-function-asin.html | 81 +- .../glsl/functions/glsl-function-atan-xy.html | 117 +- .../glsl/functions/glsl-function-atan.html | 96 +- .../glsl/functions/glsl-function-cos.html | 94 +- .../glsl/functions/glsl-function-sin.html | 95 +- .../glsl/implicit/add_int_float.vert.html | 1 + .../glsl/implicit/add_int_mat2.vert.html | 1 + .../glsl/implicit/add_int_mat3.vert.html | 1 + .../glsl/implicit/add_int_mat4.vert.html | 1 + .../glsl/implicit/add_int_vec2.vert.html | 1 + .../glsl/implicit/add_int_vec3.vert.html | 1 + .../glsl/implicit/add_int_vec4.vert.html | 1 + .../glsl/implicit/add_ivec2_vec2.vert.html | 1 + .../glsl/implicit/add_ivec3_vec3.vert.html | 1 + .../glsl/implicit/add_ivec4_vec4.vert.html | 1 + .../implicit/assign_int_to_float.vert.html | 1 + .../implicit/assign_ivec2_to_vec2.vert.html | 1 + .../implicit/assign_ivec3_to_vec3.vert.html | 1 + .../implicit/assign_ivec4_to_vec4.vert.html | 1 + .../glsl/implicit/construct_struct.vert.html | 1 + .../glsl/implicit/divide_int_float.vert.html | 1 + .../glsl/implicit/divide_int_mat2.vert.html | 1 + .../glsl/implicit/divide_int_mat3.vert.html | 1 + .../glsl/implicit/divide_int_mat4.vert.html | 1 + .../glsl/implicit/divide_int_vec2.vert.html | 1 + .../glsl/implicit/divide_int_vec3.vert.html | 1 + .../glsl/implicit/divide_int_vec4.vert.html | 1 + .../glsl/implicit/divide_ivec2_vec2.vert.html | 1 + .../glsl/implicit/divide_ivec3_vec3.vert.html | 1 + .../glsl/implicit/divide_ivec4_vec4.vert.html | 1 + .../glsl/implicit/equal_int_float.vert.html | 1 + .../glsl/implicit/equal_ivec2_vec2.vert.html | 1 + .../glsl/implicit/equal_ivec3_vec3.vert.html | 1 + .../glsl/implicit/equal_ivec4_vec4.vert.html | 1 + .../implicit/function_int_float.vert.html | 1 + .../implicit/function_ivec2_vec2.vert.html | 1 + .../implicit/function_ivec3_vec3.vert.html | 1 + .../implicit/function_ivec4_vec4.vert.html | 1 + .../glsl/implicit/greater_than.vert.html | 1 + .../implicit/greater_than_equal.vert.html | 1 + .../glsl/implicit/less_than.vert.html | 1 + .../glsl/implicit/less_than_equal.vert.html | 1 + .../implicit/multiply_int_float.vert.html | 1 + .../glsl/implicit/multiply_int_mat2.vert.html | 1 + .../glsl/implicit/multiply_int_mat3.vert.html | 1 + .../glsl/implicit/multiply_int_mat4.vert.html | 1 + .../glsl/implicit/multiply_int_vec2.vert.html | 1 + .../glsl/implicit/multiply_int_vec3.vert.html | 1 + .../glsl/implicit/multiply_int_vec4.vert.html | 1 + .../implicit/multiply_ivec2_vec2.vert.html | 1 + .../implicit/multiply_ivec3_vec3.vert.html | 1 + .../implicit/multiply_ivec4_vec4.vert.html | 1 + .../implicit/not_equal_int_float.vert.html | 1 + .../implicit/not_equal_ivec2_vec2.vert.html | 1 + .../implicit/not_equal_ivec3_vec3.vert.html | 1 + .../implicit/not_equal_ivec4_vec4.vert.html | 1 + .../implicit/subtract_int_float.vert.html | 1 + .../glsl/implicit/subtract_int_mat2.vert.html | 1 + .../glsl/implicit/subtract_int_mat3.vert.html | 1 + .../glsl/implicit/subtract_int_mat4.vert.html | 1 + .../glsl/implicit/subtract_int_vec2.vert.html | 1 + .../glsl/implicit/subtract_int_vec3.vert.html | 1 + .../glsl/implicit/subtract_int_vec4.vert.html | 1 + .../implicit/subtract_ivec2_vec2.vert.html | 1 + .../implicit/subtract_ivec3_vec3.vert.html | 1 + .../implicit/subtract_ivec4_vec4.vert.html | 1 + .../glsl/implicit/ternary_int_float.vert.html | 1 + .../implicit/ternary_ivec2_vec2.vert.html | 1 + .../implicit/ternary_ivec3_vec3.vert.html | 1 + .../implicit/ternary_ivec4_vec4.vert.html | 1 + .../conformance/glsl/misc/00_test_list.txt | 5 +- .../misc/attrib-location-length-limits.html | 3 +- ...embedded-struct-definitions-forbidden.html | 1 + .../glsl/misc/glsl-function-nodes.html | 1 + .../glsl/misc/glsl-vertex-branch.html | 130 ++ .../glsl/misc/non-ascii-comments.vert.html | 1 + .../conformance/glsl/misc/non-ascii.vert.html | 1 + .../glsl/misc/re-compile-re-link.html | 151 ++ ...er-with-256-character-identifier.frag.html | 1 + ...er-with-257-character-identifier.frag.html | 1 + .../shader-with-_webgl-identifier.vert.html | 1 + .../shader-with-arbitrary-indexing.frag.html | 1 + .../shader-with-arbitrary-indexing.vert.html | 1 + .../misc/shader-with-attrib-array.vert.html | 1 + .../misc/shader-with-attrib-struct.vert.html | 1 + .../misc/shader-with-clipvertex.vert.html | 1 + .../misc/shader-with-comma-assignment.html | 41 + ...der-with-comma-conditional-assignment.html | 200 +++ .../misc/shader-with-conditional-scoping.html | 1 + .../shader-with-default-precision.frag.html | 1 + .../shader-with-default-precision.vert.html | 1 + ...er-with-define-line-continuation.frag.html | 1 + .../misc/shader-with-dfdx-no-ext.frag.html | 1 + .../glsl/misc/shader-with-dfdx.frag.html | 1 + .../glsl/misc/shader-with-do-scoping.html | 1 + .../misc/shader-with-error-directive.html | 1 + .../shader-with-explicit-int-cast.vert.html | 1 + .../shader-with-float-return-value.frag.html | 1 + .../glsl/misc/shader-with-for-loop.html | 1 + .../glsl/misc/shader-with-for-scoping.html | 1 + .../misc/shader-with-frag-depth.frag.html | 1 + .../shader-with-function-recursion.frag.html | 1 + .../shader-with-function-scoped-struct.html | 1 + .../misc/shader-with-functional-scoping.html | 1 + .../glsl/misc/shader-with-glcolor.vert.html | 1 + .../glsl/misc/shader-with-gles-1.frag.html | 1 + .../misc/shader-with-gles-symbol.frag.html | 1 + .../shader-with-glprojectionmatrix.vert.html | 1 + .../shader-with-hex-int-constant-macro.html | 1 + ...-with-implicit-vec3-to-vec4-cast.vert.html | 1 + .../glsl/misc/shader-with-include.vert.html | 1 + .../shader-with-int-return-value.frag.html | 1 + .../shader-with-invalid-identifier.frag.html | 1 + .../shader-with-ivec2-return-value.frag.html | 1 + .../shader-with-ivec3-return-value.frag.html | 1 + .../shader-with-ivec4-return-value.frag.html | 1 + .../shader-with-limited-indexing.frag.html | 1 + .../glsl/misc/shader-with-line-directive.html | 1 + .../glsl/misc/shader-with-long-line.html | 1 + .../shader-with-non-ascii-error.frag.html | 1 + .../glsl/misc/shader-with-precision.frag.html | 1 + .../misc/shader-with-quoted-error.frag.html | 1 + ...th-undefined-preprocessor-symbol.frag.html | 1 + ...r-with-uniform-in-loop-condition.vert.html | 1 + .../shader-with-vec2-return-value.frag.html | 1 + .../shader-with-vec3-return-value.frag.html | 1 + .../shader-with-vec4-return-value.frag.html | 1 + ...hader-with-vec4-vec3-vec4-conditional.html | 1 + .../misc/shader-with-version-100.frag.html | 1 + .../misc/shader-with-version-100.vert.html | 1 + .../misc/shader-with-version-120.vert.html | 1 + .../misc/shader-with-version-130.vert.html | 1 + .../shader-with-webgl-identifier.vert.html | 1 + .../misc/shader-without-precision.frag.html | 1 + .../webgl/conformance/glsl/misc/shared.html | 1 + .../misc/struct-nesting-exceeds-maximum.html | 1 + .../misc/struct-nesting-under-maximum.html | 1 + .../misc/uniform-location-length-limits.html | 3 +- .../glsl/reserved/_webgl_field.vert.html | 1 + .../glsl/reserved/_webgl_function.vert.html | 1 + .../glsl/reserved/_webgl_struct.vert.html | 1 + .../glsl/reserved/_webgl_variable.vert.html | 1 + .../glsl/reserved/webgl_field.vert.html | 1 + .../glsl/reserved/webgl_function.vert.html | 1 + .../glsl/reserved/webgl_struct.vert.html | 1 + .../glsl/reserved/webgl_variable.vert.html | 1 + .../glsl-function-texture2d-bias.html | 8 +- .../samplers/glsl-function-texture2dlod.html | 6 +- .../samplers/glsl-function-texture2dproj.html | 11 +- .../limits/gl-max-texture-dimensions.html | 8 +- .../conformance/limits/gl-min-attribs.html | 8 +- .../conformance/limits/gl-min-textures.html | 8 +- .../conformance/limits/gl-min-uniforms.html | 19 +- .../conformance/misc/delayed-drawing.html | 3 +- .../misc/functions-returning-strings.html | 17 +- .../conformance/misc/instanceof-test.html | 28 +- .../webgl/conformance/misc/is-object.html | 3 +- .../misc/shader-precision-format.html | 2 +- .../conformance/misc/uninitialized-test.html | 7 +- .../more/conformance/constants.html | 1 - .../more/conformance/quickCheckAPI.html | 0 .../more/conformance/quickCheckAPI.js | 3 +- .../test/webgl/conformance/more/util.js | 3 +- .../programs/gl-get-active-attribute.html | 3 +- .../programs/gl-get-active-uniform.html | 9 +- .../programs/gl-getshadersource.html | 3 +- .../conformance/programs/invalid-UTF-16.html | 2 +- .../renderbuffer-initialization.html | 15 +- .../webgl/conformance/rendering/gl-clear.html | 3 +- .../resources/glsl-conformance-test.js | 60 +- .../conformance/resources/glsl-generator.js | 561 +++++-- .../conformance/resources/webgl-test-utils.js | 149 +- .../webgl/conformance/resources/webgl-test.js | 16 +- .../webgl/conformance/shaders/00_shaders.txt | 4 - .../conformance/shaders/00_test_list.txt | 2 - .../shaders/glsl-features/00_test_list.txt | 48 - .../shaders/glsl-features/abs-ref.frag | 23 - .../shaders/glsl-features/abs-ref.vert | 32 - .../shaders/glsl-features/abs-vec2-ref.frag | 28 - .../shaders/glsl-features/abs-vec2-ref.vert | 37 - .../shaders/glsl-features/abs-vec2.frag | 18 - .../shaders/glsl-features/abs-vec2.vert | 27 - .../shaders/glsl-features/abs-vec3-ref.frag | 28 - .../shaders/glsl-features/abs-vec3-ref.vert | 37 - .../shaders/glsl-features/abs-vec3.frag | 17 - .../shaders/glsl-features/abs-vec3.vert | 26 - .../shaders/glsl-features/abs-vec4-ref.frag | 27 - .../shaders/glsl-features/abs-vec4-ref.vert | 36 - .../shaders/glsl-features/abs-vec4.frag | 15 - .../shaders/glsl-features/abs-vec4.vert | 24 - .../shaders/glsl-features/abs.frag | 19 - .../shaders/glsl-features/abs.vert | 28 - .../shaders/glsl-features/base.frag | 15 - .../shaders/glsl-features/base.vert | 21 - .../shaders/glsl-features/ceil-ref.frag | 24 - .../shaders/glsl-features/ceil-ref.vert | 33 - .../shaders/glsl-features/ceil-vec2-ref.frag | 30 - .../shaders/glsl-features/ceil-vec2-ref.vert | 38 - .../shaders/glsl-features/ceil-vec2.frag | 18 - .../shaders/glsl-features/ceil-vec2.vert | 27 - .../shaders/glsl-features/ceil-vec3-ref.frag | 31 - .../shaders/glsl-features/ceil-vec3-ref.vert | 38 - .../shaders/glsl-features/ceil-vec3.frag | 18 - .../shaders/glsl-features/ceil-vec3.vert | 26 - .../shaders/glsl-features/ceil-vec4-ref.frag | 31 - .../shaders/glsl-features/ceil-vec4-ref.vert | 38 - .../shaders/glsl-features/ceil-vec4.frag | 17 - .../shaders/glsl-features/ceil-vec4.vert | 25 - .../shaders/glsl-features/ceil.frag | 18 - .../shaders/glsl-features/ceil.vert | 28 - .../shaders/glsl-features/floor-ref.frag | 23 - .../shaders/glsl-features/floor-ref.vert | 32 - .../shaders/glsl-features/floor-vec2-ref.frag | 29 - .../shaders/glsl-features/floor-vec2-ref.vert | 37 - .../shaders/glsl-features/floor-vec2.frag | 18 - .../shaders/glsl-features/floor-vec2.vert | 27 - .../shaders/glsl-features/floor-vec3-ref.frag | 30 - .../shaders/glsl-features/floor-vec3-ref.vert | 37 - .../shaders/glsl-features/floor-vec3.frag | 18 - .../shaders/glsl-features/floor-vec3.vert | 26 - .../shaders/glsl-features/floor-vec4-ref.frag | 30 - .../shaders/glsl-features/floor-vec4-ref.vert | 37 - .../shaders/glsl-features/floor-vec4.frag | 17 - .../shaders/glsl-features/floor-vec4.vert | 25 - .../shaders/glsl-features/floor.frag | 18 - .../shaders/glsl-features/floor.vert | 28 - .../shaders/glsl-features/fract-ref.frag | 23 - .../shaders/glsl-features/fract-ref.vert | 32 - .../shaders/glsl-features/fract-vec2-ref.frag | 29 - .../shaders/glsl-features/fract-vec2-ref.vert | 37 - .../shaders/glsl-features/fract-vec2.frag | 18 - .../shaders/glsl-features/fract-vec2.vert | 27 - .../shaders/glsl-features/fract-vec3-ref.frag | 30 - .../shaders/glsl-features/fract-vec3-ref.vert | 37 - .../shaders/glsl-features/fract-vec3.frag | 18 - .../shaders/glsl-features/fract-vec3.vert | 26 - .../shaders/glsl-features/fract-vec4-ref.frag | 30 - .../shaders/glsl-features/fract-vec4-ref.vert | 36 - .../shaders/glsl-features/fract-vec4.frag | 16 - .../shaders/glsl-features/fract-vec4.vert | 24 - .../shaders/glsl-features/fract.frag | 18 - .../shaders/glsl-features/fract.vert | 28 - .../shaders/glsl-features/sign-ref.frag | 26 - .../shaders/glsl-features/sign-ref.vert | 29 - .../shaders/glsl-features/sign-vec2-ref.frag | 31 - .../shaders/glsl-features/sign-vec2-ref.vert | 32 - .../shaders/glsl-features/sign-vec2.frag | 18 - .../shaders/glsl-features/sign-vec2.vert | 23 - .../shaders/glsl-features/sign-vec3-ref.frag | 32 - .../shaders/glsl-features/sign-vec3-ref.vert | 31 - .../shaders/glsl-features/sign-vec3.frag | 18 - .../shaders/glsl-features/sign-vec3.vert | 22 - .../shaders/glsl-features/sign-vec4-ref.frag | 32 - .../shaders/glsl-features/sign-vec4-ref.vert | 35 - .../shaders/glsl-features/sign-vec4.frag | 17 - .../shaders/glsl-features/sign-vec4.vert | 22 - .../shaders/glsl-features/sign.frag | 19 - .../shaders/glsl-features/sign.vert | 24 - .../shaders/implicit/00_shaders.txt | 65 - .../shaders/implicit/add_int_float.vert | 5 - .../shaders/implicit/add_int_mat2.vert | 5 - .../shaders/implicit/add_int_mat3.vert | 5 - .../shaders/implicit/add_int_mat4.vert | 5 - .../shaders/implicit/add_int_vec2.vert | 5 - .../shaders/implicit/add_int_vec3.vert | 5 - .../shaders/implicit/add_int_vec4.vert | 5 - .../shaders/implicit/add_ivec2_vec2.vert | 5 - .../shaders/implicit/add_ivec3_vec3.vert | 5 - .../shaders/implicit/add_ivec4_vec4.vert | 5 - .../shaders/implicit/assign_int_to_float.vert | 5 - .../implicit/assign_ivec2_to_vec2.vert | 5 - .../implicit/assign_ivec3_to_vec3.vert | 5 - .../implicit/assign_ivec4_to_vec4.vert | 5 - .../shaders/implicit/construct_struct.vert | 8 - .../shaders/implicit/divide_int_float.vert | 5 - .../shaders/implicit/divide_int_mat2.vert | 5 - .../shaders/implicit/divide_int_mat3.vert | 5 - .../shaders/implicit/divide_int_mat4.vert | 5 - .../shaders/implicit/divide_int_vec2.vert | 5 - .../shaders/implicit/divide_int_vec3.vert | 5 - .../shaders/implicit/divide_int_vec4.vert | 5 - .../shaders/implicit/divide_ivec2_vec2.vert | 5 - .../shaders/implicit/divide_ivec3_vec3.vert | 5 - .../shaders/implicit/divide_ivec4_vec4.vert | 5 - .../shaders/implicit/equal_int_float.vert | 5 - .../shaders/implicit/equal_ivec2_vec2.vert | 5 - .../shaders/implicit/equal_ivec3_vec3.vert | 5 - .../shaders/implicit/equal_ivec4_vec4.vert | 5 - .../shaders/implicit/function_int_float.vert | 8 - .../shaders/implicit/function_ivec2_vec2.vert | 8 - .../shaders/implicit/function_ivec3_vec3.vert | 8 - .../shaders/implicit/function_ivec4_vec4.vert | 8 - .../shaders/implicit/greater_than.vert | 5 - .../shaders/implicit/greater_than_equal.vert | 5 - .../shaders/implicit/less_than.vert | 5 - .../shaders/implicit/less_than_equal.vert | 5 - .../shaders/implicit/multiply_int_float.vert | 5 - .../shaders/implicit/multiply_int_mat2.vert | 5 - .../shaders/implicit/multiply_int_mat3.vert | 5 - .../shaders/implicit/multiply_int_mat4.vert | 5 - .../shaders/implicit/multiply_int_vec2.vert | 5 - .../shaders/implicit/multiply_int_vec3.vert | 5 - .../shaders/implicit/multiply_int_vec4.vert | 5 - .../shaders/implicit/multiply_ivec2_vec2.vert | 5 - .../shaders/implicit/multiply_ivec3_vec3.vert | 5 - .../shaders/implicit/multiply_ivec4_vec4.vert | 5 - .../shaders/implicit/not_equal_int_float.vert | 5 - .../implicit/not_equal_ivec2_vec2.vert | 5 - .../implicit/not_equal_ivec3_vec3.vert | 5 - .../implicit/not_equal_ivec4_vec4.vert | 5 - .../shaders/implicit/subtract_int_float.vert | 5 - .../shaders/implicit/subtract_int_mat2.vert | 5 - .../shaders/implicit/subtract_int_mat3.vert | 5 - .../shaders/implicit/subtract_int_mat4.vert | 5 - .../shaders/implicit/subtract_int_vec2.vert | 5 - .../shaders/implicit/subtract_int_vec3.vert | 5 - .../shaders/implicit/subtract_int_vec4.vert | 5 - .../shaders/implicit/subtract_ivec2_vec2.vert | 5 - .../shaders/implicit/subtract_ivec3_vec3.vert | 5 - .../shaders/implicit/subtract_ivec4_vec4.vert | 5 - .../shaders/implicit/ternary_int_float.vert | 5 - .../shaders/implicit/ternary_ivec2_vec2.vert | 5 - .../shaders/implicit/ternary_ivec3_vec3.vert | 5 - .../shaders/implicit/ternary_ivec4_vec4.vert | 5 - .../conformance/shaders/misc/00_shaders.txt | 5 - .../shaders/misc/non-ascii-comments.vert | 9 - .../conformance/shaders/misc/non-ascii.vert | 8 - .../conformance/shaders/misc/shared-a.frag | 34 - .../conformance/shaders/misc/shared-b.frag | 31 - .../conformance/shaders/misc/shared.vert | 41 - .../shaders/reserved/00_shaders.txt | 8 - .../shaders/reserved/_webgl_field.vert | 8 - .../shaders/reserved/_webgl_function.vert | 8 - .../shaders/reserved/_webgl_struct.vert | 8 - .../shaders/reserved/_webgl_variable.vert | 4 - .../shaders/reserved/webgl_field.vert | 8 - .../shaders/reserved/webgl_function.vert | 8 - .../shaders/reserved/webgl_struct.vert | 8 - .../shaders/reserved/webgl_variable.vert | 4 - .../webgl/conformance/state/gl-get-calls.html | 2 +- .../webgl/conformance/state/gl-geterror.html | 3 +- .../conformance/textures/00_test_list.txt | 1 + .../textures/compressed-tex-image.html | 3 +- .../conformance/textures/gl-teximage.html | 7 +- ...d-sub-image-2d-with-array-buffer-view.html | 3 +- ...tex-image-and-sub-image-2d-with-image.html | 3 +- ...tex-image-and-sub-image-2d-with-video.html | 3 +- .../textures/tex-sub-image-2d-bad-args.html | 3 +- .../textures/tex-sub-image-2d.html | 3 +- .../textures/texture-active-bind.html | 10 +- .../conformance/textures/texture-clear.html | 42 + .../conformance/textures/texture-mips.html | 5 +- .../conformance/textures/texture-npot.html | 8 +- .../textures/texture-size-cube-maps.html | 3 +- .../conformance/textures/texture-size.html | 8 +- ...exture-transparent-pixels-initialized.html | 3 +- .../uniforms/uniform-samplers-test.html | 3 +- .../webgl/dont-load-image-from-internet.patch | 1354 ++++++++++++++++- .../ext-texture-filter-anisotropic.patch | 105 +- .../test/webgl/extra/offscreen-issue.html | 38 + .../out-of-bounds-uniform-array-access.html | 7 +- .../test/webgl/extra/out-of-memory.html | 184 +-- .../canvas/test/webgl/failing_tests_linux.txt | 3 +- .../canvas/test/webgl/failing_tests_mac.txt | 1 - .../test/webgl/failing_tests_windows.txt | 2 - .../log-more-info-about-test-failures.patch | 8 +- .../test/webgl/reference-cycle-test.patch | 107 ++ .../test/webgl/remove-uniqueObjectTest.patch | 48 - .../test/webgl/resources/webgl-logo.png | Bin 0 -> 11020 bytes .../test/webgl/webgl-conformance-tests.html | 18 +- 401 files changed, 4310 insertions(+), 4214 deletions(-) create mode 100644 content/canvas/test/webgl/conformance/LICENSE_CHROMIUM create mode 100644 content/canvas/test/webgl/conformance/context/context-attribute-preserve-drawing-buffer.html delete mode 100644 content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgb.dxt1.js delete mode 100644 content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.dxt1.js delete mode 100644 content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.dxt3.js delete mode 100644 content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.dxt5.js delete mode 100644 content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.raw.js delete mode 100644 content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgb.dxt1.js delete mode 100644 content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.dxt1.js delete mode 100644 content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.dxt3.js delete mode 100644 content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.dxt5.js delete mode 100644 content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.pvrtc4bpp.js delete mode 100644 content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.raw.js create mode 100644 content/canvas/test/webgl/conformance/extensions/webgl-compressed-texture-s3tc.html delete mode 100644 content/canvas/test/webgl/conformance/extensions/webgl-experimental-compressed-textures.html create mode 100644 content/canvas/test/webgl/conformance/glsl/misc/glsl-vertex-branch.html create mode 100644 content/canvas/test/webgl/conformance/glsl/misc/re-compile-re-link.html create mode 100644 content/canvas/test/webgl/conformance/glsl/misc/shader-with-comma-assignment.html create mode 100644 content/canvas/test/webgl/conformance/glsl/misc/shader-with-comma-conditional-assignment.html delete mode 100644 content/canvas/test/webgl/conformance/more/conformance/quickCheckAPI.html delete mode 100644 content/canvas/test/webgl/conformance/shaders/00_shaders.txt delete mode 100755 content/canvas/test/webgl/conformance/shaders/00_test_list.txt delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/00_test_list.txt delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-vec2-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-vec2-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-vec2.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-vec2.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-vec3-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-vec3-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-vec3.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-vec3.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-vec4-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-vec4-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-vec4.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs-vec4.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/abs.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/base.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/base.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-vec2-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-vec2-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-vec2.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-vec2.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-vec3-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-vec3-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-vec3.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-vec3.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-vec4-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-vec4-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-vec4.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil-vec4.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/ceil.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-vec2-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-vec2-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-vec2.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-vec2.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-vec3-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-vec3-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-vec3.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-vec3.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-vec4-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-vec4-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-vec4.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor-vec4.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/floor.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-vec2-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-vec2-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-vec2.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-vec2.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-vec3-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-vec3-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-vec3.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-vec3.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-vec4-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-vec4-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-vec4.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract-vec4.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/fract.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-vec2-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-vec2-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-vec2.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-vec2.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-vec3-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-vec3-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-vec3.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-vec3.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-vec4-ref.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-vec4-ref.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-vec4.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign-vec4.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/glsl-features/sign.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/00_shaders.txt delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/add_int_float.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/add_int_mat2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/add_int_mat3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/add_int_mat4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/add_int_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/add_int_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/add_int_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/add_ivec2_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/add_ivec3_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/add_ivec4_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/assign_int_to_float.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/assign_ivec2_to_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/assign_ivec3_to_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/assign_ivec4_to_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/construct_struct.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/divide_int_float.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/divide_int_mat2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/divide_int_mat3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/divide_int_mat4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/divide_int_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/divide_int_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/divide_int_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/divide_ivec2_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/divide_ivec3_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/divide_ivec4_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/equal_int_float.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/equal_ivec2_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/equal_ivec3_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/equal_ivec4_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/function_int_float.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/function_ivec2_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/function_ivec3_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/function_ivec4_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/greater_than.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/greater_than_equal.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/less_than.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/less_than_equal.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/multiply_int_float.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/multiply_int_mat2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/multiply_int_mat3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/multiply_int_mat4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/multiply_int_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/multiply_int_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/multiply_int_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/multiply_ivec2_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/multiply_ivec3_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/multiply_ivec4_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/not_equal_int_float.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/not_equal_ivec2_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/not_equal_ivec3_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/not_equal_ivec4_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/subtract_int_float.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/subtract_int_mat2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/subtract_int_mat3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/subtract_int_mat4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/subtract_int_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/subtract_int_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/subtract_int_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/subtract_ivec2_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/subtract_ivec3_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/subtract_ivec4_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/ternary_int_float.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/ternary_ivec2_vec2.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/ternary_ivec3_vec3.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/implicit/ternary_ivec4_vec4.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/misc/00_shaders.txt delete mode 100644 content/canvas/test/webgl/conformance/shaders/misc/non-ascii-comments.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/misc/non-ascii.vert delete mode 100755 content/canvas/test/webgl/conformance/shaders/misc/shared-a.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/misc/shared-b.frag delete mode 100755 content/canvas/test/webgl/conformance/shaders/misc/shared.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/reserved/00_shaders.txt delete mode 100644 content/canvas/test/webgl/conformance/shaders/reserved/_webgl_field.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/reserved/_webgl_function.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/reserved/_webgl_struct.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/reserved/_webgl_variable.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/reserved/webgl_field.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/reserved/webgl_function.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/reserved/webgl_struct.vert delete mode 100644 content/canvas/test/webgl/conformance/shaders/reserved/webgl_variable.vert create mode 100644 content/canvas/test/webgl/conformance/textures/texture-clear.html create mode 100644 content/canvas/test/webgl/extra/offscreen-issue.html create mode 100644 content/canvas/test/webgl/reference-cycle-test.patch delete mode 100644 content/canvas/test/webgl/remove-uniqueObjectTest.patch create mode 100644 content/canvas/test/webgl/resources/webgl-logo.png mode change 100755 => 100644 content/canvas/test/webgl/webgl-conformance-tests.html diff --git a/content/canvas/test/webgl/00_test_list.txt b/content/canvas/test/webgl/00_test_list.txt index ef8cb3dbbc60..03c181f2393a 100644 --- a/content/canvas/test/webgl/00_test_list.txt +++ b/content/canvas/test/webgl/00_test_list.txt @@ -1,6 +1,6 @@ -// files that end in .txt list other tests -// other lines are assumed to be .html files - -conformance/00_test_list.txt -conformance/more/00_test_list.txt - +// files that end in .txt list other tests +// other lines are assumed to be .html files + +conformance/00_test_list.txt +conformance/more/00_test_list.txt + diff --git a/content/canvas/test/webgl/README.mozilla b/content/canvas/test/webgl/README.mozilla index 62a9c40b47c9..e8e65d2e53b9 100644 --- a/content/canvas/test/webgl/README.mozilla +++ b/content/canvas/test/webgl/README.mozilla @@ -1,6 +1,10 @@ -This is a local copy of the WebGL conformance suite, SVN revision 16776 +This is a local copy of the WebGL conformance suite, version 1.0.1, SVN revision 17036 (on the 1.0.1 branch, not on trunk) -The canonical location for this testsuite is: +The canonical location for this 1.0.1 test suite is: + + https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/conformance-suites/1.0.1 + +The canonical location of the development tree is: https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests @@ -12,3 +16,13 @@ patch file in this directory. The exceptions (the Mozilla-specific files) are: * Makefile.in * *.patch files, if any +How to do an update: + 1. unapply local patches (the .patch files here) + 2. perform the update: + * method A: apply diff with new version + * method B: erase all files here, import copy of new version. + 3. edit CONFORMANCE_TEST_VERSION in test_webgl_conformance_test_suite.html. That's what + determines with tests to run, as some tests are only enabled in some not-yet-released + version. + 4. reapply local patches. + 5. update this readme and the .patch files diff --git a/content/canvas/test/webgl/README.txt b/content/canvas/test/webgl/README.txt index 1746d80cb8af..ba710d4395dd 100644 --- a/content/canvas/test/webgl/README.txt +++ b/content/canvas/test/webgl/README.txt @@ -1,28 +1,28 @@ -Welcome to the WebGL Conformance Test Suite -=========================================== - -This is the initial release of the WebGL conformance test suite. - -NOTE TO USERS: Unless you are a WebGL implementor, there is no need to submit -a conformance result using this process. Should you discover bugs in your -browser's WebGL implementation, either via this test suite or otherwise, -please report them to your browser vendor's bug tracking system. - -FOR WEBGL IMPLEMENTORS: Please follow the isntructions below to create -a formal conformance submission.' - -1) Open webgl-conformance-tests.html in your target browser - -2) Press the "run tests" button - -3) At the end of the run, press "display text summary" - -4) Verify that the User Agent and WebGL renderer strings identify your browser and target correctly. - -5) Copy the contents of the text summary (starting with "WebGL Conformance Test Results") and send via email to - --- NEED ADDRESS HERE --- @khronos.org - - -- Version 1.0.0 -- February 24, 2011 - +Welcome to the WebGL Conformance Test Suite +=========================================== + +This is the initial release of the WebGL conformance test suite. + +NOTE TO USERS: Unless you are a WebGL implementor, there is no need to submit +a conformance result using this process. Should you discover bugs in your +browser's WebGL implementation, either via this test suite or otherwise, +please report them to your browser vendor's bug tracking system. + +FOR WEBGL IMPLEMENTORS: Please follow the isntructions below to create +a formal conformance submission.' + +1) Open webgl-conformance-tests.html in your target browser + +2) Press the "run tests" button + +3) At the end of the run, press "display text summary" + +4) Verify that the User Agent and WebGL renderer strings identify your browser and target correctly. + +5) Copy the contents of the text summary (starting with "WebGL Conformance Test Results") and send via email to + --- NEED ADDRESS HERE --- @khronos.org + + +- Version 1.0.0 +- February 24, 2011 + diff --git a/content/canvas/test/webgl/conformance/00_readme.txt b/content/canvas/test/webgl/conformance/00_readme.txt index be651dcf4ce6..a04eaa37b331 100644 --- a/content/canvas/test/webgl/conformance/00_readme.txt +++ b/content/canvas/test/webgl/conformance/00_readme.txt @@ -1,13 +1,13 @@ -This file "00_test_list.txt" lists which files the test harness should run. - -If you add new tests you can update it with - -on windows - - dir /b *.html >00_test_list.txt - -on OSX / Linux - - ls -1 *.html >00_test_list.txt - - +This file "00_test_list.txt" lists which files the test harness should run. + +If you add new tests you can update it with + +on windows + + dir /b *.html >00_test_list.txt + +on OSX / Linux + + ls -1 *.html >00_test_list.txt + + diff --git a/content/canvas/test/webgl/conformance/LICENSE_CHROMIUM b/content/canvas/test/webgl/conformance/LICENSE_CHROMIUM new file mode 100644 index 000000000000..a5723d213093 --- /dev/null +++ b/content/canvas/test/webgl/conformance/LICENSE_CHROMIUM @@ -0,0 +1,30 @@ +// For files copyrighted by the Chromium Authors, the following +// license applies: + +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/content/canvas/test/webgl/conformance/attribs/gl-vertex-attrib-zero-issues.html b/content/canvas/test/webgl/conformance/attribs/gl-vertex-attrib-zero-issues.html index ff691397f811..021615f5e33c 100644 --- a/content/canvas/test/webgl/conformance/attribs/gl-vertex-attrib-zero-issues.html +++ b/content/canvas/test/webgl/conformance/attribs/gl-vertex-attrib-zero-issues.html @@ -37,15 +37,11 @@ description("Test some of the issues of the difference between attrib 0 on OpenGL vs WebGL"); debug(""); var wtu = WebGLTestUtils; -var canvas = document.getElementById("example"); -var gl = wtu.create3DContext(canvas); +var gl = wtu.create3DContext("example"); function setup(numVerts, attribIndex) { var program = wtu.setupProgram( - gl, - [wtu.loadShaderFromScript(gl, 'vshader', gl.VERTEX_SHADER), - wtu.loadShaderFromScript(gl, 'fshader', gl.FRAGMENT_SHADER)], - ['vPosition'], [attribIndex]); + gl, ['vshader', 'fshader'], ['vPosition'], [attribIndex]); // draw with something on attrib zero with a small number of vertices var vertexObject = gl.createBuffer(); g_program = program; diff --git a/content/canvas/test/webgl/conformance/canvas/buffer-offscreen-test.html b/content/canvas/test/webgl/conformance/canvas/buffer-offscreen-test.html index bbe4c2291cb4..4a022e647dd1 100644 --- a/content/canvas/test/webgl/conformance/canvas/buffer-offscreen-test.html +++ b/content/canvas/test/webgl/conformance/canvas/buffer-offscreen-test.html @@ -53,9 +53,8 @@ function go() { debug(""); - gl1 = create3DContext(document.getElementById("c")); - c2 = document.createElement('canvas'); - gl2 = create3DContext(c2); + gl1 = wtu.create3DContext("c"); + gl2 = create3DContext(); shouldBeTrue("gl1 != null"); shouldBeTrue("gl2 != null"); diff --git a/content/canvas/test/webgl/conformance/canvas/buffer-preserve-test.html b/content/canvas/test/webgl/conformance/canvas/buffer-preserve-test.html index 33a038d6f448..7bc23db31852 100644 --- a/content/canvas/test/webgl/conformance/canvas/buffer-preserve-test.html +++ b/content/canvas/test/webgl/conformance/canvas/buffer-preserve-test.html @@ -59,7 +59,7 @@ function go() { debug(""); - gl1 = create3DContext(document.getElementById("c")); + gl1 = wtu.create3DContext("c"); if (!gl1) { finishTest(); return; diff --git a/content/canvas/test/webgl/conformance/canvas/drawingbuffer-static-canvas-test.html b/content/canvas/test/webgl/conformance/canvas/drawingbuffer-static-canvas-test.html index 8dbeb074ed13..afe9df68d29c 100644 --- a/content/canvas/test/webgl/conformance/canvas/drawingbuffer-static-canvas-test.html +++ b/content/canvas/test/webgl/conformance/canvas/drawingbuffer-static-canvas-test.html @@ -94,8 +94,7 @@ debug(""); var wtu = WebGLTestUtils; var err; var maxSize; -var canvas = document.getElementById("canvas"); -var gl = wtu.create3DContext(canvas); +var gl = wtu.create3DContext("canvas"); if (!gl) { testFailed("context does not exist"); } else { @@ -114,8 +113,8 @@ if (!gl) { debug("Checking drawingBufferWidth/drawingBufferHeight"); // Check that a canvas with no width or height is 300x150 pixels - shouldBe('gl.drawingBufferWidth', 'canvas.width'); - shouldBe('gl.drawingBufferHeight', 'canvas.height'); + shouldBe('gl.drawingBufferWidth', 'gl.canvas.width'); + shouldBe('gl.drawingBufferHeight', 'gl.canvas.height'); // Check that changing the canvas size to something too large falls back to reasonable values. maxSize = gl.getParameter(gl.MAX_VIEWPORT_DIMS); @@ -123,8 +122,8 @@ if (!gl) { shouldBeTrue('maxSize[1] > 0'); // debug("MAX_VIEWPORT_DIMS = " + maxSize[0] + "x" + maxSize[1]); - canvas.width = maxSize[0] * 4; - canvas.height = maxSize[1] * 4; + gl.canvas.width = maxSize[0] * 4; + gl.canvas.height = maxSize[1] * 4; shouldBeTrue('gl.drawingBufferWidth > 0'); shouldBeTrue('gl.drawingBufferHeight > 0'); shouldBeTrue('gl.drawingBufferWidth <= maxSize[0]'); @@ -133,8 +132,8 @@ if (!gl) { debug(""); debug("Checking scaling up then back down to 50/50, drawing still works."); - canvas.width = 50; - canvas.height = 50; + gl.canvas.width = 50; + gl.canvas.height = 50; shouldBeTrue('gl.drawingBufferWidth == 50'); shouldBeTrue('gl.drawingBufferHeight == 50'); shouldBe('gl.getError()', 'gl.NO_ERROR'); diff --git a/content/canvas/test/webgl/conformance/canvas/drawingbuffer-test.html b/content/canvas/test/webgl/conformance/canvas/drawingbuffer-test.html index 75dbabe31678..f96843b44124 100644 --- a/content/canvas/test/webgl/conformance/canvas/drawingbuffer-test.html +++ b/content/canvas/test/webgl/conformance/canvas/drawingbuffer-test.html @@ -93,8 +93,7 @@ debug(""); var wtu = WebGLTestUtils; var err; var maxSize; -var canvas = document.createElement("canvas"); -var gl = create3DContext(canvas); +var gl = wtu.create3DContext(); if (!gl) { testFailed("context does not exist"); } else { @@ -113,8 +112,8 @@ if (!gl) { debug("Checking drawingBufferWidth/drawingBufferHeight"); // Check that a canvas with no width or height is 300x150 pixels - shouldBe('gl.drawingBufferWidth', 'canvas.width'); - shouldBe('gl.drawingBufferHeight', 'canvas.height'); + shouldBe('gl.drawingBufferWidth', 'gl.canvas.width'); + shouldBe('gl.drawingBufferHeight', 'gl.canvas.height'); // Check that changing the canvas size to something too large falls back to reasonable values. maxSize = gl.getParameter(gl.MAX_VIEWPORT_DIMS); @@ -122,8 +121,8 @@ if (!gl) { shouldBeTrue('maxSize[1] > 0'); // debug("MAX_VIEWPORT_DIMS = " + maxSize[0] + "x" + maxSize[1]); - canvas.width = maxSize[0] * 4; - canvas.height = maxSize[1] * 4; + gl.canvas.width = maxSize[0] * 4; + gl.canvas.height = maxSize[1] * 4; shouldBeTrue('gl.drawingBufferWidth > 0'); shouldBeTrue('gl.drawingBufferHeight > 0'); shouldBeTrue('gl.drawingBufferWidth <= maxSize[0]'); @@ -132,8 +131,8 @@ if (!gl) { debug(""); debug("Checking scaling up then back down to 50/50, drawing still works."); - canvas.width = 50; - canvas.height = 50; + gl.canvas.width = 50; + gl.canvas.height = 50; shouldBeTrue('gl.drawingBufferWidth == 50'); shouldBeTrue('gl.drawingBufferHeight == 50'); shouldBe('gl.getError()', 'gl.NO_ERROR'); diff --git a/content/canvas/test/webgl/conformance/context/constants.html b/content/canvas/test/webgl/conformance/context/constants.html index b7a51484450d..700dc5feeff9 100644 --- a/content/canvas/test/webgl/conformance/context/constants.html +++ b/content/canvas/test/webgl/conformance/context/constants.html @@ -196,7 +196,6 @@ SAMPLE_COVERAGE_INVERT : 0x80AB, /* TEXTURE_WRAP_S */ /* TEXTURE_WRAP_T */ -NUM_COMPRESSED_TEXTURE_FORMATS : 0x86A2, COMPRESSED_TEXTURE_FORMATS : 0x86A3, /* HintMode */ diff --git a/content/canvas/test/webgl/conformance/context/context-attribute-preserve-drawing-buffer.html b/content/canvas/test/webgl/conformance/context/context-attribute-preserve-drawing-buffer.html new file mode 100644 index 000000000000..19a26b6f23e1 --- /dev/null +++ b/content/canvas/test/webgl/conformance/context/context-attribute-preserve-drawing-buffer.html @@ -0,0 +1,113 @@ + + + + + + + + + + + + +
+ + + + should look as right pattern +
+
+
+
+
+ + + + should look as right pattern +
+
+
+
+
+
+ + + diff --git a/content/canvas/test/webgl/conformance/extensions/00_test_list.txt b/content/canvas/test/webgl/conformance/extensions/00_test_list.txt index 19cf7977b906..3c10b713dc5c 100644 --- a/content/canvas/test/webgl/conformance/extensions/00_test_list.txt +++ b/content/canvas/test/webgl/conformance/extensions/00_test_list.txt @@ -4,5 +4,5 @@ oes-texture-float.html oes-vertex-array-object.html webgl-debug-renderer-info.html webgl-debug-shaders.html ---min-version 1.0.2 webgl-experimental-compressed-textures.html +--min-version 1.0.2 webgl-compressed-texture-s3tc.html diff --git a/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgb.dxt1.js b/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgb.dxt1.js deleted file mode 100644 index 90cd45253954..000000000000 --- a/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgb.dxt1.js +++ /dev/null @@ -1,3 +0,0 @@ -var img_4x4_rgb_dxt1 = [ -0xe0,0x07,0x00,0xf8,0x11,0x10,0x15,0x00, -]; diff --git a/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.dxt1.js b/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.dxt1.js deleted file mode 100644 index df09bb23cd33..000000000000 --- a/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.dxt1.js +++ /dev/null @@ -1,3 +0,0 @@ -var img_4x4_rgba_dxt1 = [ -0xe0,0x07,0x00,0xf8,0x13,0x10,0x15,0x00, -]; diff --git a/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.dxt3.js b/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.dxt3.js deleted file mode 100644 index 9b131b04307f..000000000000 --- a/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.dxt3.js +++ /dev/null @@ -1,3 +0,0 @@ -var img_4x4_rgba_dxt3 = [ -0xf6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf8,0xe0,0x07,0x44,0x45,0x40,0x55, -]; diff --git a/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.dxt5.js b/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.dxt5.js deleted file mode 100644 index 525375eb9d1d..000000000000 --- a/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.dxt5.js +++ /dev/null @@ -1,3 +0,0 @@ -var img_4x4_rgba_dxt5 = [ -0xf6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf8,0xe0,0x07,0x44,0x45,0x40,0x55, -]; diff --git a/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.raw.js b/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.raw.js deleted file mode 100644 index f13ac555bd02..000000000000 --- a/content/canvas/test/webgl/conformance/extensions/compressed-textures/4x4.rgba.raw.js +++ /dev/null @@ -1,3 +0,0 @@ -var img_4x4_rgba_raw = [ -0xff,0x00,0x00,0x69,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff, -]; diff --git a/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgb.dxt1.js b/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgb.dxt1.js deleted file mode 100644 index a1038bc4434e..000000000000 --- a/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgb.dxt1.js +++ /dev/null @@ -1,3 +0,0 @@ -var img_8x8_rgb_dxt1 = [ -0xe0,0x07,0x00,0xf8,0x11,0x10,0x15,0x00,0x1f,0x00,0xe0,0xff,0x11,0x10,0x15,0x00,0xe0,0x07,0x1f,0xf8,0x44,0x45,0x40,0x55,0x1f,0x00,0xff,0x07,0x44,0x45,0x40,0x55, -]; diff --git a/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.dxt1.js b/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.dxt1.js deleted file mode 100644 index d0ea7add1847..000000000000 --- a/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.dxt1.js +++ /dev/null @@ -1,3 +0,0 @@ -var img_8x8_rgba_dxt1 = [ -0xe0,0x07,0x00,0xf8,0x13,0x13,0x15,0x00,0x1f,0x00,0xe0,0xff,0x11,0x10,0x15,0x00,0xe0,0x07,0x1f,0xf8,0x44,0x45,0x43,0x57,0x1f,0x00,0xff,0x07,0x44,0x45,0x40,0x55, -]; diff --git a/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.dxt3.js b/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.dxt3.js deleted file mode 100644 index bf377686f527..000000000000 --- a/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.dxt3.js +++ /dev/null @@ -1,3 +0,0 @@ -var img_8x8_rgba_dxt3 = [ -0xf6,0xff,0xf6,0xff,0xff,0xff,0xff,0xff,0x00,0xf8,0xe0,0x07,0x44,0x45,0x40,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xff,0x1f,0x00,0x44,0x45,0x40,0x55,0xff,0xff,0xff,0xff,0xf6,0xff,0xf6,0xff,0x1f,0xf8,0xe0,0x07,0x11,0x10,0x15,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x1f,0x00,0x11,0x10,0x15,0x00, -]; diff --git a/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.dxt5.js b/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.dxt5.js deleted file mode 100644 index 4819227a4c88..000000000000 --- a/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.dxt5.js +++ /dev/null @@ -1,3 +0,0 @@ -var img_8x8_rgba_dxt5 = [ -0xff,0x69,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0xf8,0xe0,0x07,0x44,0x45,0x40,0x55,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0x1f,0x00,0x44,0x45,0x40,0x55,0xff,0x69,0x00,0x00,0x00,0x01,0x10,0x00,0x1f,0xf8,0xe0,0x07,0x11,0x10,0x15,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x07,0x1f,0x00,0x11,0x10,0x15,0x00, -]; diff --git a/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.pvrtc4bpp.js b/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.pvrtc4bpp.js deleted file mode 100644 index 64f446060417..000000000000 --- a/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.pvrtc4bpp.js +++ /dev/null @@ -1,3 +0,0 @@ -var img_8x8_rgba_pvrtc4bpp = [ -0x33,0x30,0x3f,0x00,0xe0,0x83,0x00,0xfc,0xcc,0xcf,0xc0,0xff,0xe0,0x83,0x1f,0xfc,0xcc,0xcf,0xc0,0xff,0xe0,0xff,0x1f,0x80,0x33,0x30,0x3f,0x00,0xfe,0x83,0x1f,0x80, -]; diff --git a/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.raw.js b/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.raw.js deleted file mode 100644 index 8ace90a75908..000000000000 --- a/content/canvas/test/webgl/conformance/extensions/compressed-textures/8x8.rgba.raw.js +++ /dev/null @@ -1,3 +0,0 @@ -var img_8x8_rgba_raw = [ -0xff,0x00,0x00,0x69,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0x00,0x69,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0x00,0x69,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0x69,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff, -]; diff --git a/content/canvas/test/webgl/conformance/extensions/oes-standard-derivatives.html b/content/canvas/test/webgl/conformance/extensions/oes-standard-derivatives.html index 8f8167a620b3..f820468a40f7 100644 --- a/content/canvas/test/webgl/conformance/extensions/oes-standard-derivatives.html +++ b/content/canvas/test/webgl/conformance/extensions/oes-standard-derivatives.html @@ -120,8 +120,8 @@ if (!gl) { runHintTestEnabled(); runShaderTests(true); runOutputTests(); - // similar to bug 683216, see the discussion in bug 630672 - // runUniqueObjectTest(); + runUniqueObjectTest(); + runReferenceCycleTest(); } } @@ -257,11 +257,7 @@ function runOutputTests() { gl.viewport(0, 0, canvas.width, canvas.height); gl.hint(ext.FRAGMENT_SHADER_DERIVATIVE_HINT_OES, gl.NICEST); - var shaders = [ - wtu.loadShaderFromScript(gl, "outputVertexShader"), - wtu.loadShaderFromScript(gl, "outputFragmentShader") - ]; - var program = wtu.setupProgram(gl, shaders, ['vPosition', 'texCoord0'], [0, 1]); + var program = wtu.setupProgram(gl, ["outputVertexShader", "outputFragmentShader"], ['vPosition', 'texCoord0'], [0, 1]); var quadParameters = wtu.setupUnitQuad(gl, 0, 1); function readLocation(x, y) { @@ -375,6 +371,20 @@ function runUniqueObjectTest() shouldBe('gl.getExtension("OES_standard_derivatives").myProperty', '2'); } +function runReferenceCycleTest() +{ + // create some reference cycles. The goal is to see if they cause leaks. The point is that + // some browser test runners have instrumentation to detect leaked refcounted objects. + + debug("Testing reference cycles between context and extension objects"); + var ext = gl.getExtension("OES_standard_derivatives"); + + // create cycle between extension and context, since the context has to hold a reference to the extension + ext.context = gl; + + // create a self-cycle on the extension object + ext.ext = ext; +} debug(""); successfullyParsed = true; diff --git a/content/canvas/test/webgl/conformance/extensions/oes-texture-float.html b/content/canvas/test/webgl/conformance/extensions/oes-texture-float.html index 3b6d2459767c..82b704cd371c 100644 --- a/content/canvas/test/webgl/conformance/extensions/oes-texture-float.html +++ b/content/canvas/test/webgl/conformance/extensions/oes-texture-float.html @@ -66,7 +66,7 @@ if (!gl) { var texturedShaders = [ wtu.setupSimpleTextureVertexShader(gl), - wtu.loadShaderFromScript(gl, "testFragmentShader") + "testFragmentShader" ]; var testProgram = wtu.setupProgram(gl, @@ -85,8 +85,8 @@ if (!gl) { testPassed("Successfully enabled OES_texture_float extension"); runTextureCreationTest(testProgram, true); runRenderTargetTest(testProgram); - // bug 683216, see the discussion in bug 630672 - // runUniqueObjectTest(); + runUniqueObjectTest(); + runReferenceCycleTest(); } } @@ -165,13 +165,9 @@ function runRenderTargetTest(testProgram) if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE) return; - var shaders = [ - wtu.loadShaderFromScript(gl, "positionVertexShader"), - wtu.loadShaderFromScript(gl, "floatingPointFragmentShader") - ]; var renderProgram = wtu.setupProgram(gl, - shaders, + ["positionVertexShader", "floatingPointFragmentShader"], ['vPosition'], [0]); wtu.drawQuad(gl); @@ -216,6 +212,20 @@ function runUniqueObjectTest() shouldBe('gl.getExtension("OES_texture_float").myProperty', '2'); } +function runReferenceCycleTest() +{ + // create some reference cycles. The goal is to see if they cause leaks. The point is that + // some browser test runners have instrumentation to detect leaked refcounted objects. + + debug("Testing reference cycles between context and extension objects"); + var ext = gl.getExtension("OES_texture_float"); + + // create cycle between extension and context, since the context has to hold a reference to the extension + ext.context = gl; + + // create a self-cycle on the extension object + ext.ext = ext; +} debug(""); successfullyParsed = true; diff --git a/content/canvas/test/webgl/conformance/extensions/webgl-compressed-texture-s3tc.html b/content/canvas/test/webgl/conformance/extensions/webgl-compressed-texture-s3tc.html new file mode 100644 index 000000000000..45e06c7bbe35 --- /dev/null +++ b/content/canvas/test/webgl/conformance/extensions/webgl-compressed-texture-s3tc.html @@ -0,0 +1,614 @@ + + + + + + + + + +WebGL WEBGL_compressed_texture_s3tc Conformance Tests + + + +
+ +
+ + + + + diff --git a/content/canvas/test/webgl/conformance/extensions/webgl-debug-renderer-info.html b/content/canvas/test/webgl/conformance/extensions/webgl-debug-renderer-info.html index f4689e25652b..ef3dcb323a52 100644 --- a/content/canvas/test/webgl/conformance/extensions/webgl-debug-renderer-info.html +++ b/content/canvas/test/webgl/conformance/extensions/webgl-debug-renderer-info.html @@ -26,8 +26,7 @@ description("This test verifies the functionality of the WEBGL_debug_renderer_in debug(""); var wtu = WebGLTestUtils; -var canvas = document.getElementById("canvas"); -var gl = create3DContext(canvas); +var gl = wtu.create3DContext("canvas"); var ext = null; var vao = null; diff --git a/content/canvas/test/webgl/conformance/extensions/webgl-debug-shaders.html b/content/canvas/test/webgl/conformance/extensions/webgl-debug-shaders.html index ac70d993d830..58fde2d0c2e1 100644 --- a/content/canvas/test/webgl/conformance/extensions/webgl-debug-shaders.html +++ b/content/canvas/test/webgl/conformance/extensions/webgl-debug-shaders.html @@ -26,8 +26,7 @@ description("This test verifies the functionality of the WEBGL_debug_shaders ext debug(""); var wtu = WebGLTestUtils; -var canvas = document.getElementById("canvas"); -var gl = create3DContext(canvas); +var gl = wtu.create3DContext("canvas"); var ext = null; var shader = null; diff --git a/content/canvas/test/webgl/conformance/extensions/webgl-experimental-compressed-textures.html b/content/canvas/test/webgl/conformance/extensions/webgl-experimental-compressed-textures.html deleted file mode 100644 index 2dbf612ecb0a..000000000000 --- a/content/canvas/test/webgl/conformance/extensions/webgl-experimental-compressed-textures.html +++ /dev/null @@ -1,520 +0,0 @@ - - - - - -WebGL WEBGL_EXPERIMENTAL_compressed_textures Conformance Tests - - - - - - - - - - - - - - - -
- -
- - - - - - diff --git a/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-acos.html b/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-acos.html index 79224384c727..5deaf3670ce5 100644 --- a/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-acos.html +++ b/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-acos.html @@ -26,44 +26,65 @@ var piConstants = [ "const float k2PI = (kPI * 2.0);" ].join("\n"); -var asinImplementation = [ - "float asin_impl(float v) {", - " return v + (1.0 / 2.0) * pow(v, 3.0) / 3.0 +", - " ((1.0 * 3.0) / (2.0 * 4.0)) * pow(v, 5.0) / 5.0 +", - " ((1.0 * 3.0 * 5.0) / (2.0 * 4.0 * 6.0)) * pow(v, 7.0) / 7.0 +", - " ((1.0 * 3.0 * 5.0 * 7.0) / (2.0 * 4.0 * 6.0 * 8.0)) * pow(v, 9.0) / 9.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.runFeatureTest({ +GLSLGenerator.runReferenceImageTest({ feature: "acos", args: "$(type) value", - baseArgs: "value$(field)", testFunc: "$(func)($(type))", - emuFunc: [ - asinImplementation, - "float $(func)_base(float value) {", - " return kHalfPI - asin_impl(value);", - "}" - ].join("\n"), gridRes: 8, - tolerance: 8, + tolerance: 2, extra: piConstants, tests: [ - ["$(output) = vec4(", - " $(func)($(input).x * 0.8) / kPI,", - " $(func)($(input).y * 0.8) / kPI,", - " 0,", - " 1);"].join("\n"), - ["$(output) = vec4(", - " $(func)($(input).xy * 0.8) / kPI,", - " 0, 1);"].join("\n"), - ["$(output) = vec4(", - " $(func)($(input).xyz * 0.8) / kPI,", - " 1);"].join("\n"), - ["$(output) = ", - " $(func)($(input) * 0.8) / kPI;", - ].join("\n") + { + 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 ]; + }, + }, ] }); successfullyParsed = true; diff --git a/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-asin.html b/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-asin.html index e2fce7e0e29b..8713b298cd60 100644 --- a/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-asin.html +++ b/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-asin.html @@ -26,44 +26,65 @@ var piConstants = [ "const float k2PI = (kPI * 2.0);" ].join("\n"); -var asinImplementation = [ - "float asin_impl(float v) {", - " return v + (1.0 / 2.0) * pow(v, 3.0) / 3.0 +", - " ((1.0 * 3.0) / (2.0 * 4.0)) * pow(v, 5.0) / 5.0 +", - " ((1.0 * 3.0 * 5.0) / (2.0 * 4.0 * 6.0)) * pow(v, 7.0) / 7.0 +", - " ((1.0 * 3.0 * 5.0 * 7.0) / (2.0 * 4.0 * 6.0 * 8.0)) * pow(v, 9.0) / 9.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.runFeatureTest({ +GLSLGenerator.runReferenceImageTest({ feature: "asin", args: "$(type) value", - baseArgs: "value$(field)", testFunc: "$(func)($(type))", - emuFunc: [ - asinImplementation, - "float $(func)_base(float value) {", - " return asin_impl(value);", - "}" - ].join("\n"), gridRes: 8, tolerance: 2, extra: piConstants, tests: [ - ["$(output) = vec4(", - " $(func)($(input).x * 0.8) / kPI + 0.5,", - " $(func)($(input).y * 0.8) / kPI + 0.5,", - " 0,", - " 1);"].join("\n"), - ["$(output) = vec4(", - " $(func)($(input).xy * 0.8) / kPI + 0.5,", - " 0, 1);"].join("\n"), - ["$(output) = vec4(", - " $(func)($(input).xyz * 0.8) / kPI + 0.5,", - " 1);"].join("\n"), - ["$(output) = ", - " $(func)($(input) * 0.8) / kPI + 0.5;", - ].join("\n") + { + 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 ]; + }, + }, ] }); successfullyParsed = true; diff --git a/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-atan-xy.html b/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-atan-xy.html index f587991217ed..e3fd62ee3100 100644 --- a/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-atan-xy.html +++ b/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-atan-xy.html @@ -26,75 +26,68 @@ var piConstants = [ "const float k2PI = (kPI * 2.0);" ].join("\n"); -var atanImplementation = [ - "const float kEpsilon = 0.0001;", - "", - "float atan_impl(float y, float x) {", - " float atan_value = 0.0;", - " float scale = 1.0;", - " float sign = 1.0;", - "", - " if (x > kEpsilon || abs(y) > kEpsilon) {", - " if (x < 0.0 ^^ y < 0.0) {", - " sign = -1.0;", - " }", - "", - " bool y_gt_x = abs(y) < abs(x);", - " float value = y_gt_x ? abs(y / x) : abs(x / y);", - "", - " // Use Taylors series expansion for atan", - " for(int ii = 1; ii < 8; ii += 2) {", - " atan_value += scale * pow(value, float(ii)) / float(ii);", - " scale = -scale;", - " }", - "", - " atan_value = (y_gt_x) ? sign * atan_value : sign * (kHalfPI - atan_value);", - " }", - "", - " if (x < 0.0) {", - " if (y < 0.0) {", - " atan_value -= kHalfPI;", - " } else if (y > 0.0) {", - " atan_value += kHalfPI;", - " }", - " }", - "", - " return atan_value;", - "}" -].join("\n"); +var kPI = Math.PI; +var kHalfPI = Math.PI * 0.5; +var k2PI = Math.PI * 2.0; +var atan2 = Math.atan2; // shorthand -GLSLGenerator.runFeatureTest({ +GLSLGenerator.runReferenceImageTest({ feature: "atan", args: "$(type) y, $(type) x", - baseArgs: "y$(field), x$(field)", testFunc: "$(func)($(type), $(type))", - emuFunc: [ - atanImplementation, - "float $(func)_base(float y, float x) {", - " return atan_impl(y, x);", - "}" - ].join("\n"), gridRes: 8, - tolerance: 4, + tolerance: 5, extra: piConstants, tests: [ - ["$(output) = vec4(", - " $(func)($(input).x + 0.1, $(input).y) / k2PI + 0.5,", - " 0,", - " 0,", - " 1);"].join("\n"), - ["$(output) = vec4(", - " $(func)($(input).xy + vec2(0.1, 0.1), $(input).yx) / ", - " k2PI + vec2(0.5, 0.5),", - " 0, 1);"].join("\n"), - ["$(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"), - ["$(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") + { + 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 ]; + }, + }, ] }); successfullyParsed = true; diff --git a/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-atan.html b/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-atan.html index 37dbe1eedf10..574f95982380 100644 --- a/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-atan.html +++ b/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-atan.html @@ -26,59 +26,65 @@ var piConstants = [ "const float k2PI = (kPI * 2.0);" ].join("\n"); -var atanImplementation = [ - "float atan_impl(float value) {", - " float atan_value = 0.0;", - " float scale = 1.0;", - " float sign = 1.0;", - "", - " if (value < 0.0) {", - " sign = -1.0;", - " value = -value;", - " }", - "", - " bool value_le_1 = value <= 1.0;", - " value = value_le_1 ? value : 1.0 / value;", - "", - " // Use Taylors series expansion for atan", - " for(int ii = 1; ii < 8; ii += 2) {", - " atan_value += scale * pow(value, float(ii)) / float(ii);", - " scale = -scale;", - " }", - "", - " return value_le_1 ? sign * atan_value : sign * (kHalfPI - atan_value);", - "}", -].join("\n"); +var kPI = Math.PI; +var kHalfPI = Math.PI * 0.5; +var k2PI = Math.PI * 2.0; +var atan = Math.atan; // shorthand -GLSLGenerator.runFeatureTest({ +GLSLGenerator.runReferenceImageTest({ feature: "atan", args: "$(type) value", - baseArgs: "value$(field)", testFunc: "$(func)($(type))", - emuFunc: [ - atanImplementation, - "", - "#define $(func)_base(value) atan_impl(value)" - ].join("\n"), gridRes: 8, tolerance: 4, extra: piConstants, tests: [ - ["$(output) = vec4(", - " $(func)($(input).x * 8.0 - 4.0) / k2PI + 0.5,", - " 0.5,", - " 0,", - " 1);"].join("\n"), - ["$(output) = vec4(", - " $(func)($(input).xy * 8.0 - vec2(4, 4)) / k2PI + vec2(0.5, 0.5),", - " 0, 1);"].join("\n"), - ["$(output) = vec4(", - " $(func)($(input).xyz * 8.0 - vec3(4, 4, 4)) / k2PI + vec3(0.5, 0.5, 0.5),", - - " 1);"].join("\n"), - ["$(output) = ", - " $(func)($(input) * 8.0 - vec4(4, 4, 4, 4)) / k2PI + vec4(0.5, 0.5, 0.5, 0.5);", - ].join("\n") + { + 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 ]; + }, + }, ] }); successfullyParsed = true; diff --git a/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-cos.html b/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-cos.html index 5281a1266dda..06557572b023 100644 --- a/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-cos.html +++ b/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-cos.html @@ -26,53 +26,69 @@ var piConstants = [ "const float k2PI = (kPI * 2.0);" ].join("\n"); -var sinImplementation = [ - "", - "float sin_impl(float value) {", - " value = mod(value + k2PI * 10.0, k2PI);", // only positive values for now - " int quad = int(floor(value / kHalfPI));", // figure out which quad - " float p = mod(value, kHalfPI);", // from 0.0 to PI/2 - " if (quad == 1 || quad == 3) { p = kHalfPI - p; }", // backward in quads 1,3 - " float c = p - ", - " pow(p, 3.0) / (1.0 * 2.0 * 3.0) + ", - " pow(p, 5.0) / (1.0 * 2.0 * 3.0 * 4.0 * 5.0) - ", - " pow(p, 7.0) / (1.0 * 2.0 * 3.0 * 4.0 * 5.0 * 6.0 * 7.0);", - " if (quad == 2 || quad == 3) { c = -c; }", - " return c;", - "}" -].join('\n'); +var kPI = Math.PI; +var kHalfPI = Math.PI * 0.5; +var k2PI = Math.PI * 2.0; +var cos = Math.cos; // shorthand -GLSLGenerator.runFeatureTest({ +GLSLGenerator.runReferenceImageTest({ feature: "cos", args: "$(type) value", - baseArgs: "value$(field)", testFunc: "$(func)($(type))", - emuFunc: [ - sinImplementation, - "float $(func)_base(float value) {", - " return sin_impl(value + kHalfPI);", - "}" - ].join("\n"), gridRes: 8, tolerance: 2, extra: piConstants, tests: [ - ["$(output) = vec4(", - " $(func)($(input).x * kHalfPI + kHalfPI),", - " $(func)($(input).y * kHalfPI),", - " 0,", - " 1);"].join("\n"), - ["$(output) = vec4(", - " $(func)($(input).xy * vec2(kPI, k2PI)) * 0.5 + vec2(0.5, 0.5),", - " 0, 1);"].join("\n"), - ["$(output) = vec4(", - " $(func)($(input).xyz * vec3(kPI, k2PI, 4.0)) * ", - " 0.5 + vec3(0.5, 0.5, 0.5),", - " 1);"].join("\n"), - ["$(output) = ", - " $(func)($(input) * vec4(k2PI, 4.0, kHalfPI, kPI)) *", - " 0.5 + vec4(0.5, 0.5, 0.5, 1);", - ].join("\n") + { + 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 ]; + }, + }, ] }); successfullyParsed = true; diff --git a/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-sin.html b/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-sin.html index f5238bf7fa7e..8cdb015a683a 100644 --- a/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-sin.html +++ b/content/canvas/test/webgl/conformance/glsl/functions/glsl-function-sin.html @@ -26,57 +26,70 @@ var piConstants = [ "const float k2PI = (kPI * 2.0);" ].join("\n"); -var sinImplementation = [ - "", - "float sin_impl(float value) {", - " value = mod(value + k2PI * 10.0, k2PI);", // only positive values for now - " int quad = int(floor(value / kHalfPI));", // figure out which quad - " float p = mod(value, kHalfPI);", // from 0.0 to PI/2 - " if (quad == 1 || quad == 3) { p = kHalfPI - p; }", // backward in quads 1,3 - " float c = p - ", - " pow(p, 3.0) / (1.0 * 2.0 * 3.0) + ", - " pow(p, 5.0) / (1.0 * 2.0 * 3.0 * 4.0 * 5.0) - ", - " pow(p, 7.0) / (1.0 * 2.0 * 3.0 * 4.0 * 5.0 * 6.0 * 7.0);", - " if (quad == 2 || quad == 3) { c = -c; }", - " return c;", - "}" -].join('\n'); +var kPI = Math.PI; +var kHalfPI = Math.PI * 0.5; +var k2PI = Math.PI * 2.0; +var sin = Math.sin; // shorthand -GLSLGenerator.runFeatureTest({ +GLSLGenerator.runReferenceImageTest({ feature: "sin", args: "$(type) value", - baseArgs: "value$(field)", testFunc: "$(func)($(type))", - emuFunc: [ - sinImplementation, - "float $(func)_base(float value) {", - " return sin_impl(value);", - "}" - ].join("\n"), gridRes: 8, - tolerance: 2, + tolerance: 4, extra: piConstants, tests: [ - ["$(output) = vec4(", - " $(func)($(input).x * kHalfPI + kHalfPI),", - " $(func)($(input).y * kHalfPI),", - " 0,", - " 1);"].join("\n"), - ["$(output) = vec4(", - " $(func)($(input).xy * vec2(kPI, k2PI)) * 0.5 + vec2(0.5, 0.5),", - " 0, 1);"].join("\n"), - ["$(output) = vec4(", - " $(func)($(input).xyz * vec3(kPI, k2PI, 4.0)) * ", - " 0.5 + vec3(0.5, 0.5, 0.5),", - " 1);"].join("\n"), - ["$(output) = ", - " $(func)($(input) * vec4(k2PI, 4.0, kHalfPI, kPI)) *", - " 0.5 + vec4(0.5, 0.5, 0.5, 1);", - ].join("\n") + { + 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 ]; + }, + }, ] }); successfullyParsed = true; - diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_float.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_float.vert.html index 35066ac5ad87..395634d769e3 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_float.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_float.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_mat2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_mat2.vert.html index 2aa8b3596b47..ebb3b4deef8d 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_mat2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_mat2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_mat3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_mat3.vert.html index b156d18a89b4..5f55e528ea3f 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_mat3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_mat3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_mat4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_mat4.vert.html index 97cdf8a55d86..ca894e135e0a 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_mat4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_mat4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_vec2.vert.html index 3faace53e66a..eff4cd124e52 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_vec3.vert.html index 71526839ddb1..d43458d56fff 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_vec4.vert.html index 006264fb5eaf..044220e2d49f 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/add_int_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/add_int_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/add_ivec2_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/add_ivec2_vec2.vert.html index 26eeafa118d6..0035a30b7d16 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/add_ivec2_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/add_ivec2_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/add_ivec3_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/add_ivec3_vec3.vert.html index 850ac829c9bb..9f14c22d7550 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/add_ivec3_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/add_ivec3_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/add_ivec4_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/add_ivec4_vec4.vert.html index 92eadff0ab64..ddbf23868ccb 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/add_ivec4_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/add_ivec4_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/assign_int_to_float.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/assign_int_to_float.vert.html index f91342f6ddca..b9c8e1e36b6f 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/assign_int_to_float.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/assign_int_to_float.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html index 2a2dc760eb71..f63d46726a34 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html index ba5507ed7b83..8c61328038a4 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html index 1425ed76e496..dd2d8dfd52d5 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/construct_struct.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/construct_struct.vert.html index c3699631beba..8dedd44df44a 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/construct_struct.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/construct_struct.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_float.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_float.vert.html index 0303eb382494..b1f98fbbc14b 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_float.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_float.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_mat2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_mat2.vert.html index a4591cdbb303..f13d4917ca44 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_mat2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_mat2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_mat3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_mat3.vert.html index 5f712a8b206a..e566d5ba71a0 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_mat3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_mat3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_mat4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_mat4.vert.html index c3380e731de0..2559526caaef 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_mat4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_mat4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_vec2.vert.html index c9367f90233d..023b3b2a0111 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_vec3.vert.html index 616cf126f0a0..3bc23bf39754 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_vec4.vert.html index 07e3cdd951b9..a988b6e9f2e6 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/divide_int_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/divide_ivec2_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/divide_ivec2_vec2.vert.html index eeeb746860ea..aabacf458dbd 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/divide_ivec2_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/divide_ivec2_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/divide_ivec3_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/divide_ivec3_vec3.vert.html index 4476bb5b45e8..f2092e7f9c88 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/divide_ivec3_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/divide_ivec3_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/divide_ivec4_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/divide_ivec4_vec4.vert.html index 96bd95b24690..9739a51959f9 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/divide_ivec4_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/divide_ivec4_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/equal_int_float.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/equal_int_float.vert.html index 1e482d6d8a24..9ca59ef4cc16 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/equal_int_float.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/equal_int_float.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/equal_ivec2_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/equal_ivec2_vec2.vert.html index 3cf9d9d1359b..80420d950af2 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/equal_ivec2_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/equal_ivec2_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/equal_ivec3_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/equal_ivec3_vec3.vert.html index 04da04d5c667..8c1783f8820a 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/equal_ivec3_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/equal_ivec3_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/equal_ivec4_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/equal_ivec4_vec4.vert.html index d87c688f1656..c805cdf95518 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/equal_ivec4_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/equal_ivec4_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/function_int_float.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/function_int_float.vert.html index dd5214152f59..9121dfdaa321 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/function_int_float.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/function_int_float.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/function_ivec2_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/function_ivec2_vec2.vert.html index 55dc61c4aa06..0cf8e3783cbf 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/function_ivec2_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/function_ivec2_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/function_ivec3_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/function_ivec3_vec3.vert.html index 2a86ec994558..aef0cb01ec5c 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/function_ivec3_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/function_ivec3_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/function_ivec4_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/function_ivec4_vec4.vert.html index 9a739bd89b18..fe9c9b4fe5b1 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/function_ivec4_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/function_ivec4_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/greater_than.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/greater_than.vert.html index 56dcb4930bc2..6423b2dd85c0 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/greater_than.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/greater_than.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/greater_than_equal.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/greater_than_equal.vert.html index 2c4a02203e95..d5e97b287bb7 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/greater_than_equal.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/greater_than_equal.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/less_than.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/less_than.vert.html index e2d8f44100f2..e39c580edf19 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/less_than.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/less_than.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/less_than_equal.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/less_than_equal.vert.html index 7012764e1068..4d26a720a600 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/less_than_equal.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/less_than_equal.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_float.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_float.vert.html index 7e92c2feb7f8..a71e3f187815 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_float.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_float.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_mat2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_mat2.vert.html index b256a81fac10..f26a68c1addb 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_mat2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_mat2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_mat3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_mat3.vert.html index 6d573d2c7012..4bf3c9a2754b 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_mat3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_mat3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_mat4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_mat4.vert.html index 0f46fb214770..5085b9515d05 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_mat4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_mat4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_vec2.vert.html index 0006a1b96423..c35f6a9a247c 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_vec3.vert.html index 87154cfa25d0..0edbe677844a 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_vec4.vert.html index 5ab2e5df0664..945e70c5f2af 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_int_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html index 33c9e4acea03..25d84d9e9fca 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html index a32c8ab6b62e..501c97f1b658 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html index ff31d8f4e129..214b278bcfc5 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_int_float.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_int_float.vert.html index 561d020d59de..866aca4f0e85 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_int_float.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_int_float.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html index 014e909a4754..2b0988980a59 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html index fbb7479bd841..0fe8e8391611 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html index dfe2b00b9abf..fc24420b167b 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_float.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_float.vert.html index da83ab290fb1..d298a759c4a0 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_float.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_float.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_mat2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_mat2.vert.html index fda408b76edf..2c61babf7212 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_mat2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_mat2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_mat3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_mat3.vert.html index 428dc9680da3..52d1f1effb95 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_mat3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_mat3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_mat4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_mat4.vert.html index 8adb7cc82f7e..ee34cddea326 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_mat4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_mat4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_vec2.vert.html index 661951174cb4..d9fceb45572e 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_vec3.vert.html index 71af7122a0ec..98b1c05a7b55 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_vec4.vert.html index 525325a7e41c..db6b60393804 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_int_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html index 28ac1c768029..6e4ce2f1a1ae 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html index fd9dc59f0efe..e399dcecb254 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html index 769efd95cd0c..28393dad460f 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/ternary_int_float.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/ternary_int_float.vert.html index 0a7c1d251925..7a878815f6be 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/ternary_int_float.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/ternary_int_float.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html index 73be979e1b68..06f590b7cc55 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html index 7b0306c94eb1..abd12cf01e46 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html b/content/canvas/test/webgl/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html index 55dffc4c7df8..d0e2fb2615b1 100644 --- a/content/canvas/test/webgl/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/00_test_list.txt b/content/canvas/test/webgl/conformance/glsl/misc/00_test_list.txt index f87259c59aad..76984b33908a 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/00_test_list.txt +++ b/content/canvas/test/webgl/conformance/glsl/misc/00_test_list.txt @@ -3,10 +3,11 @@ 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 shader-with-256-character-identifier.frag.html shader-with-257-character-identifier.frag.html shader-with-_webgl-identifier.vert.html @@ -31,6 +32,8 @@ 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 diff --git a/content/canvas/test/webgl/conformance/glsl/misc/attrib-location-length-limits.html b/content/canvas/test/webgl/conformance/glsl/misc/attrib-location-length-limits.html index 4a83af1dc906..7cb7b6b80aa0 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/attrib-location-length-limits.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/attrib-location-length-limits.html @@ -4,6 +4,7 @@ WebGL attrib location length tests + @@ -46,7 +47,7 @@ if (window.initNonKhronosFramework) { description("test attrib location length limit"); var wtu = WebGLTestUtils; -var gl = wtu.create3DContext(document.getElementById("example")); +var gl = wtu.create3DContext("example"); debug("Test attrib location underneath the length limit"); var program = wtu.loadProgramFromScript(gl, "goodVertexShader", "fragmentShader"); diff --git a/content/canvas/test/webgl/conformance/glsl/misc/embedded-struct-definitions-forbidden.html b/content/canvas/test/webgl/conformance/glsl/misc/embedded-struct-definitions-forbidden.html index 0e72d6edd09c..9387c946c0b0 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/embedded-struct-definitions-forbidden.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/embedded-struct-definitions-forbidden.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/glsl-function-nodes.html b/content/canvas/test/webgl/conformance/glsl/misc/glsl-function-nodes.html index c2136aa51756..bb6c371e9e15 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/glsl-function-nodes.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/glsl-function-nodes.html @@ -9,6 +9,7 @@ found in the LICENSE file. GLSL function nodes Test + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/glsl-vertex-branch.html b/content/canvas/test/webgl/conformance/glsl/misc/glsl-vertex-branch.html new file mode 100644 index 000000000000..8983bfa1c209 --- /dev/null +++ b/content/canvas/test/webgl/conformance/glsl/misc/glsl-vertex-branch.html @@ -0,0 +1,130 @@ + + + + + +GLSL function nodes Test + + + + + + + + + + + + + + + +
This tests against a Mac driver bug related to branches + inside of Vertex Shaders.
+
+ + + + + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/non-ascii-comments.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/non-ascii-comments.vert.html index d7f5c30ebf38..dd0b284dd3c4 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/non-ascii-comments.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/non-ascii-comments.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/non-ascii.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/non-ascii.vert.html index 39750358f9e5..e71da1396033 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/non-ascii.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/non-ascii.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/re-compile-re-link.html b/content/canvas/test/webgl/conformance/glsl/misc/re-compile-re-link.html new file mode 100644 index 000000000000..36f787d4a647 --- /dev/null +++ b/content/canvas/test/webgl/conformance/glsl/misc/re-compile-re-link.html @@ -0,0 +1,151 @@ + + + + + +WebGL Re-Compile and Re-link Shader conformance test. + + + + + + + +
+
+ + + + + + + + + + + + + + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-256-character-identifier.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-256-character-identifier.frag.html index b949e7ec23a7..55e26ebff2a6 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-256-character-identifier.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-256-character-identifier.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-257-character-identifier.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-257-character-identifier.frag.html index 2b6dcc3c5c00..8dec406e9393 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-257-character-identifier.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-257-character-identifier.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html index 8069059d38fd..fe05b1bb5850 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html index 808cee190f8b..5e1af44e6da1 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html index 4c8e2df06696..9644b16a9692 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-attrib-array.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-attrib-array.vert.html index 6b03c8b8f614..9b377eb494d5 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-attrib-array.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-attrib-array.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-attrib-struct.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-attrib-struct.vert.html index 263528f0255c..d5c66e7b5a25 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-attrib-struct.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-attrib-struct.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-clipvertex.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-clipvertex.vert.html index 5ea1c1443553..7837461de8a5 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-clipvertex.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-clipvertex.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-comma-assignment.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-comma-assignment.html new file mode 100644 index 000000000000..ad2d4cc1acbe --- /dev/null +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-comma-assignment.html @@ -0,0 +1,41 @@ + + + + + +WebGL GLSL Conformance Tests + + + + + + + +
+
+ + + + + + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-comma-conditional-assignment.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-comma-conditional-assignment.html new file mode 100644 index 000000000000..70d84c458a8f --- /dev/null +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-comma-conditional-assignment.html @@ -0,0 +1,200 @@ + + + + + +WebGL GLSL Conformance Tests + + + + + + + +
+
+ + + + + + + + + + + + + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-conditional-scoping.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-conditional-scoping.html index e580b9ff08a9..7130be5d9182 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-conditional-scoping.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-conditional-scoping.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-default-precision.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-default-precision.frag.html index 5d99cc5c131e..d9ec945c90f9 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-default-precision.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-default-precision.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-default-precision.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-default-precision.vert.html index 0515a71c8819..6d509ea16e32 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-default-precision.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-default-precision.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-define-line-continuation.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-define-line-continuation.frag.html index 3dba59a31af8..087e3bebd1c0 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-define-line-continuation.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-define-line-continuation.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html index 509dcd500b78..7d01ffa927be 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-dfdx.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-dfdx.frag.html index 4a53cb3735a8..c3c69ec4cf45 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-dfdx.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-dfdx.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-do-scoping.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-do-scoping.html index 92d076033f76..99d8c81e21f6 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-do-scoping.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-do-scoping.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-error-directive.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-error-directive.html index 44305c28a74c..f959642d7959 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-error-directive.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-error-directive.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html index f9a7ab1746a5..b9c044fa3df0 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-float-return-value.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-float-return-value.frag.html index 911e213cbdaa..89c9ed975598 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-float-return-value.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-float-return-value.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-for-loop.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-for-loop.html index 748953021ebe..4d4e491cdd01 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-for-loop.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-for-loop.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-for-scoping.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-for-scoping.html index f6ad68dfc035..72dc3aac68d9 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-for-scoping.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-for-scoping.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-frag-depth.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-frag-depth.frag.html index 30aad064d9d2..f912f31a847a 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-frag-depth.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-frag-depth.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-function-recursion.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-function-recursion.frag.html index 6fd6862b7b25..242e5be9fd18 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-function-recursion.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-function-recursion.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-function-scoped-struct.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-function-scoped-struct.html index 3e2a48da14d5..3873f42769d4 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-function-scoped-struct.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-function-scoped-struct.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-functional-scoping.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-functional-scoping.html index 108d82a8df17..23319230a7e8 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-functional-scoping.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-functional-scoping.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-glcolor.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-glcolor.vert.html index b82beec2a5ee..98e2e9beb30a 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-glcolor.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-glcolor.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-gles-1.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-gles-1.frag.html index aaf48a6af73c..3295d9c3e9a1 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-gles-1.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-gles-1.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-gles-symbol.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-gles-symbol.frag.html index c4be0fec8376..5df342f59602 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-gles-symbol.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-gles-symbol.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html index 274dd93f4e79..d021a24c4f8b 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-hex-int-constant-macro.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-hex-int-constant-macro.html index 1056f3e425ce..1c5d9b72ea13 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-hex-int-constant-macro.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-hex-int-constant-macro.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html index 96b7e1863388..d4f2786414cb 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-include.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-include.vert.html index afd4886a1a24..2848ccfba52e 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-include.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-include.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-int-return-value.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-int-return-value.frag.html index 27a8a75f669e..13e63ba0c9dd 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-int-return-value.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-int-return-value.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-invalid-identifier.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-invalid-identifier.frag.html index c65e8c7ec463..969dd8ebe046 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-invalid-identifier.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-invalid-identifier.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html index 0108ab4e83e9..951685a3d8c3 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html index efce5bc3817d..e37f82bf8669 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html index ad08bd196c47..4c41b9b4b57a 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-limited-indexing.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-limited-indexing.frag.html index a7bcf1c8999a..c2c1ce194157 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-limited-indexing.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-limited-indexing.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-line-directive.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-line-directive.html index 0256540d7064..49c16949b57e 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-line-directive.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-line-directive.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-long-line.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-long-line.html index 1ff681449f39..e2cb887b7ba2 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-long-line.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-long-line.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-non-ascii-error.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-non-ascii-error.frag.html index e85c44034c30..21e5003d72ef 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-non-ascii-error.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-non-ascii-error.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-precision.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-precision.frag.html index 6ee000e8343f..e9ebb33d0cd6 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-precision.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-precision.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-quoted-error.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-quoted-error.frag.html index 90ef410a4e10..941ef2433d8e 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-quoted-error.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-quoted-error.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html index 296f88280bf4..7ac96bf3d838 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html index 8253a6009115..571b3ddf96f2 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec2-return-value.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec2-return-value.frag.html index 5cfe730efde1..9a3857eeb0a0 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec2-return-value.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec2-return-value.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec3-return-value.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec3-return-value.frag.html index 60b4c4d4676c..6a21fe451a78 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec3-return-value.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec3-return-value.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec4-return-value.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec4-return-value.frag.html index 200c4a19719b..a37ead063883 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec4-return-value.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec4-return-value.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html index d3bb6e5db5f9..01829bd09f99 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-100.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-100.frag.html index 42f87863cb3f..ef645aa9b6c9 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-100.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-100.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-100.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-100.vert.html index 65bbafe54e6a..44c0d4ec1f6c 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-100.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-100.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-120.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-120.vert.html index 01d058c2177f..a1e1fa689bc4 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-120.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-120.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-130.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-130.vert.html index 1ecbcc0862fd..38f775aab797 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-130.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-version-130.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-webgl-identifier.vert.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-webgl-identifier.vert.html index a6b2e62f383d..b547ed36ef3b 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-with-webgl-identifier.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-with-webgl-identifier.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shader-without-precision.frag.html b/content/canvas/test/webgl/conformance/glsl/misc/shader-without-precision.frag.html index 0510447ff82a..37134f79ff66 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shader-without-precision.frag.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shader-without-precision.frag.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/shared.html b/content/canvas/test/webgl/conformance/glsl/misc/shared.html index 468f571cf915..26bd5233968a 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/shared.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/shared.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/struct-nesting-exceeds-maximum.html b/content/canvas/test/webgl/conformance/glsl/misc/struct-nesting-exceeds-maximum.html index 6ab8b9dff3a1..157a9a8a0077 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/struct-nesting-exceeds-maximum.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/struct-nesting-exceeds-maximum.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/struct-nesting-under-maximum.html b/content/canvas/test/webgl/conformance/glsl/misc/struct-nesting-under-maximum.html index b471556530e5..e6d61a5c9745 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/struct-nesting-under-maximum.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/struct-nesting-under-maximum.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/misc/uniform-location-length-limits.html b/content/canvas/test/webgl/conformance/glsl/misc/uniform-location-length-limits.html index 9adaa58b6c2e..59650838b295 100644 --- a/content/canvas/test/webgl/conformance/glsl/misc/uniform-location-length-limits.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/uniform-location-length-limits.html @@ -4,6 +4,7 @@ WebGL uniform location length tests + @@ -60,7 +61,7 @@ if (window.initNonKhronosFramework) { } var wtu = WebGLTestUtils; -var gl = wtu.create3DContext(document.getElementById("example")); +var gl = wtu.create3DContext("example"); debug("Test uniform location underneath the length limit"); var program = wtu.loadProgramFromScript(gl, "goodVertexShader", "fragmentShader"); diff --git a/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_field.vert.html b/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_field.vert.html index 33ac06510961..417de0fb9604 100644 --- a/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_field.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_field.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_function.vert.html b/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_function.vert.html index 9063f28c82d8..39842666fc18 100644 --- a/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_function.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_function.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_struct.vert.html b/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_struct.vert.html index c2de5d22a0d0..aead4860005f 100644 --- a/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_struct.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_struct.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_variable.vert.html b/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_variable.vert.html index cb8babc9070e..d1c5894de14b 100644 --- a/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_variable.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/reserved/_webgl_variable.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/reserved/webgl_field.vert.html b/content/canvas/test/webgl/conformance/glsl/reserved/webgl_field.vert.html index 7342c0083cfc..540e63cfdb0c 100644 --- a/content/canvas/test/webgl/conformance/glsl/reserved/webgl_field.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/reserved/webgl_field.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/reserved/webgl_function.vert.html b/content/canvas/test/webgl/conformance/glsl/reserved/webgl_function.vert.html index b1b0aa123d86..f7ac57568b22 100644 --- a/content/canvas/test/webgl/conformance/glsl/reserved/webgl_function.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/reserved/webgl_function.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/reserved/webgl_struct.vert.html b/content/canvas/test/webgl/conformance/glsl/reserved/webgl_struct.vert.html index ea643deecc9b..1fc44ad8e150 100644 --- a/content/canvas/test/webgl/conformance/glsl/reserved/webgl_struct.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/reserved/webgl_struct.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/reserved/webgl_variable.vert.html b/content/canvas/test/webgl/conformance/glsl/reserved/webgl_variable.vert.html index 78a0b154f729..883838e1ed57 100644 --- a/content/canvas/test/webgl/conformance/glsl/reserved/webgl_variable.vert.html +++ b/content/canvas/test/webgl/conformance/glsl/reserved/webgl_variable.vert.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL GLSL Conformance Tests + diff --git a/content/canvas/test/webgl/conformance/glsl/samplers/glsl-function-texture2d-bias.html b/content/canvas/test/webgl/conformance/glsl/samplers/glsl-function-texture2d-bias.html index 287adf6e719e..63a5e773e175 100644 --- a/content/canvas/test/webgl/conformance/glsl/samplers/glsl-function-texture2d-bias.html +++ b/content/canvas/test/webgl/conformance/glsl/samplers/glsl-function-texture2d-bias.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL texture2D GLSL conformance test. + @@ -26,7 +27,7 @@ void main() { texCoord = texCoord0; } - @@ -46,10 +47,7 @@ shouldBe("canvas.height", "256"); var gl = wtu.create3DContext(canvas); var program = wtu.setupProgram( - gl, - [wtu.loadShaderFromScript(gl, 'vshader2d', gl.VERTEX_SHADER), - wtu.loadShaderFromScript(gl, 'fshader2d', gl.FRAGMENT_SHADER)], - ['vPosition', 'texCoord0'], [0, 1]); + gl, ['vshader2d', 'fshader2d'], ['vPosition', 'texCoord0'], [0, 1]); wtu.setupUnitQuad(gl, 0, 1); var colors = [ diff --git a/content/canvas/test/webgl/conformance/glsl/samplers/glsl-function-texture2dproj.html b/content/canvas/test/webgl/conformance/glsl/samplers/glsl-function-texture2dproj.html index 628872b8acd0..84cb63d6ad87 100644 --- a/content/canvas/test/webgl/conformance/glsl/samplers/glsl-function-texture2dproj.html +++ b/content/canvas/test/webgl/conformance/glsl/samplers/glsl-function-texture2dproj.html @@ -9,6 +9,7 @@ found in the LICENSE file. WebGL texture2D GLSL conformance test. + @@ -57,9 +58,7 @@ void main() { description("tests GLSL texture2DProj function with"); var wtu = WebGLTestUtils; -var canvas = document.getElementById("example"); - -var gl = wtu.create3DContext(canvas, {antialias: false}); +var gl = wtu.create3DContext("example", {antialias: false}); wtu.setupUnitQuad(gl, 0, 1); var tex = gl.createTexture(); @@ -85,10 +84,8 @@ for (var ss = 0; ss < 2; ++ss) { debug(""); debug(ss ? "testing vec4 version" : "testing vec3 version"); var program = wtu.setupProgram( - gl, - [wtu.loadShaderFromScript(gl, 'vshader' + ss, gl.VERTEX_SHADER), - wtu.loadShaderFromScript(gl, 'fshader' + ss, gl.FRAGMENT_SHADER)], - ['vPosition', 'texCoord0'], [0, 1]); + gl, ['vshader' + ss, 'fshader' + ss], + ['vPosition', 'texCoord0'], [0, 1]); gl.useProgram(program); var loc = gl.getUniformLocation(program, "divisor"); diff --git a/content/canvas/test/webgl/conformance/limits/gl-max-texture-dimensions.html b/content/canvas/test/webgl/conformance/limits/gl-max-texture-dimensions.html index e890bf1f69f5..7036623deb5f 100644 --- a/content/canvas/test/webgl/conformance/limits/gl-max-texture-dimensions.html +++ b/content/canvas/test/webgl/conformance/limits/gl-max-texture-dimensions.html @@ -40,8 +40,7 @@ void main() +
@@ -39,12 +40,13 @@ function shouldReturnString(_a) if (exception) testFailed(_a + ' should return a string. Threw exception ' + exception); else if (typeof _av == "string") - testPassed(_a + ' returns a string: "' + _av + '"'); + testPassed(_a + ' returns a string'); else testFailed(_a + ' should return a string. Returns: "' + _av + '"'); } -var gl = create3DContext(document.getElementById("canvas")); +var wtu = WebGLTestUtils; +var gl = wtu.create3DContext("canvas"); if (!gl) { testFailed("context does not exist"); } else { @@ -71,9 +73,18 @@ if (!gl) { gl.linkProgram(prog); shouldReturnString("gl.getProgramInfoLog(prog)"); + // Make sure different numbers of extensions doesn't result in + // different test output. var exts = gl.getSupportedExtensions(); + var allPassed = true; for (i in exts) { - shouldReturnString("gl.getSupportedExtensions()[" + i + "]"); + if (typeof i != "string") { + shouldReturnString("gl.getSupportedExtensions()[" + i + "]"); + allPassed = false; + } + } + if (allPassed) { + testPassed('getSupportedExtensions() returns an array of strings'); } shouldReturnString("gl.getParameter(gl.VENDOR)"); diff --git a/content/canvas/test/webgl/conformance/misc/instanceof-test.html b/content/canvas/test/webgl/conformance/misc/instanceof-test.html index a13c119f8bde..607d95832a59 100644 --- a/content/canvas/test/webgl/conformance/misc/instanceof-test.html +++ b/content/canvas/test/webgl/conformance/misc/instanceof-test.html @@ -39,7 +39,7 @@ var wtu = WebGLTestUtils; description(document.title); debug("Tests that instanceof works on WebGL objects."); debug(""); -var gl = create3DContext(document.getElementById("canvas")); +var gl = wtu.create3DContext("canvas"); shouldBeTrue('gl instanceof WebGLRenderingContext'); shouldBeTrue('gl.createBuffer() instanceof WebGLBuffer'); shouldBeTrue('gl.createFramebuffer() instanceof WebGLFramebuffer'); @@ -48,11 +48,7 @@ shouldBeTrue('gl.createRenderbuffer() instanceof WebGLRenderbuffer'); shouldBeTrue('gl.createShader(gl.VERTEX_SHADER) instanceof WebGLShader'); shouldBeTrue('gl.createTexture() instanceof WebGLTexture'); -var program = wtu.setupProgram( - gl, - [wtu.loadShaderFromScript(gl, 'vshader', gl.VERTEX_SHADER), - wtu.loadShaderFromScript(gl, 'fshader', gl.FRAGMENT_SHADER)], - ['vPosition'], [0]); +var program = wtu.setupProgram(gl, ['vshader', 'fshader'], ['vPosition'], [0]); shouldBeTrue('gl.getUniformLocation(program, "color") instanceof WebGLUniformLocation'); shouldBeTrue('gl.getActiveAttrib(program, 0) instanceof WebGLActiveInfo'); @@ -72,16 +68,16 @@ function shouldThrowWithNew(objectType, objectName) } } -shouldThrowWithNew(WebGLRenderingContext, 'WebGLRenderingContext'); -shouldThrowWithNew(WebGLActiveInfo, 'WebGLActiveInfo'); -shouldThrowWithNew(WebGLBuffer, 'WebGLBuffer'); -shouldThrowWithNew(WebGLFramebuffer, 'WebGLFramebuffer'); -shouldThrowWithNew(WebGLProgram, 'WebGLProgram'); -shouldThrowWithNew(WebGLRenderbuffer, 'WebGLRenderbuffer'); -shouldThrowWithNew(WebGLShader, 'WebGLShader'); -shouldThrowWithNew(WebGLTexture, 'WebGLTexture'); -shouldThrowWithNew(WebGLUniformLocation, 'WebGLUniformLocation'); -shouldThrowWithNew(WebGLShaderPrecisionFormat, 'WebGLShaderPrecisionFormat'); +shouldThrowWithNew(window.WebGLRenderingContext, 'WebGLRenderingContext'); +shouldThrowWithNew(window.WebGLActiveInfo, 'WebGLActiveInfo'); +shouldThrowWithNew(window.WebGLBuffer, 'WebGLBuffer'); +shouldThrowWithNew(window.WebGLFramebuffer, 'WebGLFramebuffer'); +shouldThrowWithNew(window.WebGLProgram, 'WebGLProgram'); +shouldThrowWithNew(window.WebGLRenderbuffer, 'WebGLRenderbuffer'); +shouldThrowWithNew(window.WebGLShader, 'WebGLShader'); +shouldThrowWithNew(window.WebGLTexture, 'WebGLTexture'); +shouldThrowWithNew(window.WebGLUniformLocation, 'WebGLUniformLocation'); +shouldThrowWithNew(window.WebGLShaderPrecisionFormat, 'WebGLShaderPrecisionFormat'); successfullyParsed = true; diff --git a/content/canvas/test/webgl/conformance/misc/is-object.html b/content/canvas/test/webgl/conformance/misc/is-object.html index 104e0640c4e1..a59dd3c39708 100644 --- a/content/canvas/test/webgl/conformance/misc/is-object.html +++ b/content/canvas/test/webgl/conformance/misc/is-object.html @@ -27,8 +27,7 @@ var texture; description("Tests 'is' calls against non-bound and deleted objects"); wtu = WebGLTestUtils; -canvas = document.getElementById("canvas"); -gl = wtu.create3DContext(canvas); +gl = wtu.create3DContext("canvas"); shouldGenerateGLError = wtu.shouldGenerateGLError; shouldGenerateGLError(gl, gl.NO_ERROR, "buffer = gl.createBuffer()"); diff --git a/content/canvas/test/webgl/conformance/misc/shader-precision-format.html b/content/canvas/test/webgl/conformance/misc/shader-precision-format.html index 8cb675b3f2ab..53b344ca4c7b 100644 --- a/content/canvas/test/webgl/conformance/misc/shader-precision-format.html +++ b/content/canvas/test/webgl/conformance/misc/shader-precision-format.html @@ -22,7 +22,7 @@ var wtu = WebGLTestUtils; description(document.title); debug("Tests that WebGLShaderPrecisionFormat class and getShaderPrecisionFormat work."); debug(""); -var gl = create3DContext(document.getElementById("canvas")); +var gl = wtu.create3DContext("canvas"); function verifyShaderPrecisionFormat(shadertype, precisiontype) { shouldBeTrue('gl.getShaderPrecisionFormat(' + shadertype + ', ' + diff --git a/content/canvas/test/webgl/conformance/misc/uninitialized-test.html b/content/canvas/test/webgl/conformance/misc/uninitialized-test.html index 673f85a09584..9a423f1c9e64 100644 --- a/content/canvas/test/webgl/conformance/misc/uninitialized-test.html +++ b/content/canvas/test/webgl/conformance/misc/uninitialized-test.html @@ -6,6 +6,7 @@ +
@@ -14,8 +15,8 @@ + + + + + +
+
+ + + + + + diff --git a/content/canvas/test/webgl/conformance/textures/texture-mips.html b/content/canvas/test/webgl/conformance/textures/texture-mips.html index 947a329e8004..5358212d5f47 100644 --- a/content/canvas/test/webgl/conformance/textures/texture-mips.html +++ b/content/canvas/test/webgl/conformance/textures/texture-mips.html @@ -56,10 +56,7 @@ function init() gl = wtu.create3DContext(canvas); wtu.setupUnitQuad(gl, 0, 1); var program = wtu.setupProgram( - gl, - [wtu.loadShaderFromScript(gl, 'vshader', gl.VERTEX_SHADER), - wtu.loadShaderFromScript(gl, 'fshader', gl.FRAGMENT_SHADER)], - ['vPosition', 'texCoord0'], [0, 1]); + gl, ['vshader', 'fshader'], ['vPosition', 'texCoord0'], [0, 1]); gl.disable(gl.DEPTH_TEST); gl.disable(gl.BLEND); diff --git a/content/canvas/test/webgl/conformance/textures/texture-npot.html b/content/canvas/test/webgl/conformance/textures/texture-npot.html index 81ad3279bc0c..c494dd254905 100644 --- a/content/canvas/test/webgl/conformance/textures/texture-npot.html +++ b/content/canvas/test/webgl/conformance/textures/texture-npot.html @@ -40,8 +40,7 @@ void main() - - - - -
-
- - - - - - - - + + + + + +WebGL Out Of Memory Test + + + + + + +
+
+ + + + + + + + diff --git a/content/canvas/test/webgl/failing_tests_linux.txt b/content/canvas/test/webgl/failing_tests_linux.txt index cc5592b87ae5..baa1246fa0f0 100644 --- a/content/canvas/test/webgl/failing_tests_linux.txt +++ b/content/canvas/test/webgl/failing_tests_linux.txt @@ -2,5 +2,4 @@ conformance/misc/uninitialized-test.html conformance/programs/gl-get-active-attribute.html conformance/textures/texture-mips.html conformance/uniforms/gl-uniform-bool.html -conformance/more/conformance/quickCheckAPI-S_V.html -conformance/renderbuffers/framebuffer-object-attachment.html \ No newline at end of file +conformance/renderbuffers/framebuffer-object-attachment.html diff --git a/content/canvas/test/webgl/failing_tests_mac.txt b/content/canvas/test/webgl/failing_tests_mac.txt index 1e27012a4843..40a171eaba4a 100644 --- a/content/canvas/test/webgl/failing_tests_mac.txt +++ b/content/canvas/test/webgl/failing_tests_mac.txt @@ -1,5 +1,4 @@ conformance/glsl/misc/glsl-function-nodes.html -conformance/more/conformance/quickCheckAPI-S_V.html conformance/programs/program-test.html conformance/textures/texture-mips.html conformance/textures/texture-npot.html diff --git a/content/canvas/test/webgl/failing_tests_windows.txt b/content/canvas/test/webgl/failing_tests_windows.txt index 50ab57d45213..5b4afb69ccf1 100644 --- a/content/canvas/test/webgl/failing_tests_windows.txt +++ b/content/canvas/test/webgl/failing_tests_windows.txt @@ -1,5 +1,3 @@ -conformance/glsl/functions/glsl-function-atan.html conformance/glsl/functions/glsl-function-atan-xy.html -conformance/more/conformance/quickCheckAPI-S_V.html conformance/glsl/misc/struct-nesting-under-maximum.html conformance/more/functions/uniformfArrayLen1.html diff --git a/content/canvas/test/webgl/log-more-info-about-test-failures.patch b/content/canvas/test/webgl/log-more-info-about-test-failures.patch index db8e7cac787f..d5fc605ad2c5 100644 --- a/content/canvas/test/webgl/log-more-info-about-test-failures.patch +++ b/content/canvas/test/webgl/log-more-info-about-test-failures.patch @@ -1,9 +1,9 @@ # HG changeset patch -# Parent 0122002fbffad16de0690a21aa87d0999d0cdcb9 +# Parent 9294c812b3ebf3a2684b081886a65fa0cd0420b3 diff --git a/content/canvas/test/webgl/conformance/glsl/misc/glsl-function-nodes.html b/content/canvas/test/webgl/conformance/glsl/misc/glsl-function-nodes.html --- a/content/canvas/test/webgl/conformance/glsl/misc/glsl-function-nodes.html +++ b/content/canvas/test/webgl/conformance/glsl/misc/glsl-function-nodes.html -@@ -117,17 +117,18 @@ function init() +@@ -118,17 +118,18 @@ function init() var bufFunction = new Uint8Array(width * height * 4); var bufMacro = new Uint8Array(width * height * 4); @@ -26,7 +26,7 @@ diff --git a/content/canvas/test/webgl/conformance/glsl/misc/glsl-function-nodes diff --git a/content/canvas/test/webgl/conformance/misc/uninitialized-test.html b/content/canvas/test/webgl/conformance/misc/uninitialized-test.html --- a/content/canvas/test/webgl/conformance/misc/uninitialized-test.html +++ b/content/canvas/test/webgl/conformance/misc/uninitialized-test.html -@@ -56,17 +56,19 @@ function checkNonZeroPixels(texture, tex +@@ -57,17 +57,19 @@ function checkNonZeroPixels(texture, tex gl.readPixels(0, 0, texWidth, texHeight, gl.RGBA, gl.UNSIGNED_BYTE, data); var k = 0; @@ -50,7 +50,7 @@ diff --git a/content/canvas/test/webgl/conformance/misc/uninitialized-test.html diff --git a/content/canvas/test/webgl/conformance/resources/webgl-test-utils.js b/content/canvas/test/webgl/conformance/resources/webgl-test-utils.js --- a/content/canvas/test/webgl/conformance/resources/webgl-test-utils.js +++ b/content/canvas/test/webgl/conformance/resources/webgl-test-utils.js -@@ -389,21 +389,29 @@ var drawQuad = function(gl, opt_color) { +@@ -445,21 +445,29 @@ var drawQuad = function(gl, opt_color) { var checkCanvasRect = function(gl, x, y, width, height, color, msg, errorRange) { errorRange = errorRange || 0; var buf = new Uint8Array(width * height * 4); diff --git a/content/canvas/test/webgl/reference-cycle-test.patch b/content/canvas/test/webgl/reference-cycle-test.patch new file mode 100644 index 000000000000..a7e46578ff9a --- /dev/null +++ b/content/canvas/test/webgl/reference-cycle-test.patch @@ -0,0 +1,107 @@ +# HG changeset patch +# Parent fae4a63127468bd6447453495c82b9f6713888fb + +diff --git a/content/canvas/test/webgl/conformance/extensions/oes-standard-derivatives.html b/content/canvas/test/webgl/conformance/extensions/oes-standard-derivatives.html +--- a/content/canvas/test/webgl/conformance/extensions/oes-standard-derivatives.html ++++ b/content/canvas/test/webgl/conformance/extensions/oes-standard-derivatives.html +@@ -116,16 +116,17 @@ if (!gl) { + testPassed("Successfully enabled OES_standard_derivatives extension"); + + runSupportedTest(true); + + runHintTestEnabled(); + runShaderTests(true); + runOutputTests(); + runUniqueObjectTest(); ++ runReferenceCycleTest(); + } + } + + function runSupportedTest(extensionEnabled) { + var supported = gl.getSupportedExtensions(); + if (supported.indexOf("OES_standard_derivatives") >= 0) { + if (extensionEnabled) { + testPassed("OES_standard_derivatives listed as supported and getExtension succeeded"); +@@ -365,16 +366,30 @@ function runUniqueObjectTest() + } else if (window.opera && window.opera.collect) { + window.opera.collect(); + } else { + attemptToForceGC(); + } + shouldBe('gl.getExtension("OES_standard_derivatives").myProperty', '2'); + } + ++function runReferenceCycleTest() ++{ ++ // create some reference cycles. The goal is to see if they cause leaks. The point is that ++ // some browser test runners have instrumentation to detect leaked refcounted objects. ++ ++ debug("Testing reference cycles between context and extension objects"); ++ var ext = gl.getExtension("OES_standard_derivatives"); ++ ++ // create cycle between extension and context, since the context has to hold a reference to the extension ++ ext.context = gl; ++ ++ // create a self-cycle on the extension object ++ ext.ext = ext; ++} + + debug(""); + successfullyParsed = true; + + + + + +diff --git a/content/canvas/test/webgl/conformance/extensions/oes-texture-float.html b/content/canvas/test/webgl/conformance/extensions/oes-texture-float.html +--- a/content/canvas/test/webgl/conformance/extensions/oes-texture-float.html ++++ b/content/canvas/test/webgl/conformance/extensions/oes-texture-float.html +@@ -81,16 +81,17 @@ if (!gl) { + + if (!gl.getExtension("OES_texture_float")) { + testPassed("No OES_texture_float support -- this is legal"); + } else { + testPassed("Successfully enabled OES_texture_float extension"); + runTextureCreationTest(testProgram, true); + runRenderTargetTest(testProgram); + runUniqueObjectTest(); ++ runReferenceCycleTest(); + } + } + + // Needs to be global for shouldBe to see it. + var pixels; + + function allocateTexture() + { +@@ -206,16 +207,30 @@ function runUniqueObjectTest() + } else if (window.opera && window.opera.collect) { + window.opera.collect(); + } else { + attemptToForceGC(); + } + shouldBe('gl.getExtension("OES_texture_float").myProperty', '2'); + } + ++function runReferenceCycleTest() ++{ ++ // create some reference cycles. The goal is to see if they cause leaks. The point is that ++ // some browser test runners have instrumentation to detect leaked refcounted objects. ++ ++ debug("Testing reference cycles between context and extension objects"); ++ var ext = gl.getExtension("OES_texture_float"); ++ ++ // create cycle between extension and context, since the context has to hold a reference to the extension ++ ext.context = gl; ++ ++ // create a self-cycle on the extension object ++ ext.ext = ext; ++} + + debug(""); + successfullyParsed = true; + + + + + diff --git a/content/canvas/test/webgl/remove-uniqueObjectTest.patch b/content/canvas/test/webgl/remove-uniqueObjectTest.patch deleted file mode 100644 index 2a5f27abc6b4..000000000000 --- a/content/canvas/test/webgl/remove-uniqueObjectTest.patch +++ /dev/null @@ -1,48 +0,0 @@ -# HG changeset patch -# Parent efec656cc42addae5aa96c6691031d54d46436fe -diff --git a/content/canvas/test/webgl/conformance/extensions/oes-standard-derivatives.html b/content/canvas/test/webgl/conformance/extensions/oes-standard-derivatives.html ---- a/content/canvas/test/webgl/conformance/extensions/oes-standard-derivatives.html -+++ b/content/canvas/test/webgl/conformance/extensions/oes-standard-derivatives.html -@@ -115,17 +115,18 @@ if (!gl) { - } else { - testPassed("Successfully enabled OES_standard_derivatives extension"); - - runSupportedTest(true); - - runHintTestEnabled(); - runShaderTests(true); - runOutputTests(); -- runUniqueObjectTest(); -+ // similar to bug 683216, see the discussion in bug 630672 -+ // runUniqueObjectTest(); - } - } - - function runSupportedTest(extensionEnabled) { - var supported = gl.getSupportedExtensions(); - if (supported.indexOf("OES_standard_derivatives") >= 0) { - if (extensionEnabled) { - testPassed("OES_standard_derivatives listed as supported and getExtension succeeded"); -diff --git a/content/canvas/test/webgl/conformance/extensions/oes-texture-float.html b/content/canvas/test/webgl/conformance/extensions/oes-texture-float.html ---- a/content/canvas/test/webgl/conformance/extensions/oes-texture-float.html -+++ b/content/canvas/test/webgl/conformance/extensions/oes-texture-float.html -@@ -80,17 +80,18 @@ if (!gl) { - runTextureCreationTest(testProgram, false); - - if (!gl.getExtension("OES_texture_float")) { - testPassed("No OES_texture_float support -- this is legal"); - } else { - testPassed("Successfully enabled OES_texture_float extension"); - runTextureCreationTest(testProgram, true); - runRenderTargetTest(testProgram); -- runUniqueObjectTest(); -+ // bug 683216, see the discussion in bug 630672 -+ // runUniqueObjectTest(); - } - } - - // Needs to be global for shouldBe to see it. - var pixels; - - function allocateTexture() - { diff --git a/content/canvas/test/webgl/resources/webgl-logo.png b/content/canvas/test/webgl/resources/webgl-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2fba0f760f13e3c389d95a97a167c2f6e3b83c04 GIT binary patch literal 11020 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