summaryrefslogtreecommitdiffstats
path: root/dom/canvas/test/webgl-conf/checkout/deqp/framework/common/tcuSkipList.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/canvas/test/webgl-conf/checkout/deqp/framework/common/tcuSkipList.js')
-rw-r--r--dom/canvas/test/webgl-conf/checkout/deqp/framework/common/tcuSkipList.js245
1 files changed, 245 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/deqp/framework/common/tcuSkipList.js b/dom/canvas/test/webgl-conf/checkout/deqp/framework/common/tcuSkipList.js
new file mode 100644
index 0000000000..286b1956be
--- /dev/null
+++ b/dom/canvas/test/webgl-conf/checkout/deqp/framework/common/tcuSkipList.js
@@ -0,0 +1,245 @@
+/*
+Copyright (c) 2019 The Khronos Group Inc.
+Use of this source code is governed by an MIT-style license that can be
+found in the LICENSE.txt file.
+*/
+
+/**
+ * This class defines the individual tests which are skipped because
+ * of graphics driver bugs which simply can not be worked around in
+ * WebGL 2.0 implementations.
+ *
+ * The intent is that this list be kept as small as possible; and that
+ * bugs are filed with the respective GPU vendors for entries in this
+ * list.
+ *
+ * Pass the query argument "runSkippedTests" in the URL in order to
+ * force the skipped tests to be run. So, for example:
+ *
+ * http://localhost:8080/sdk/tests/deqp/functional/gles3/transformfeedback.html?filter=transform_feedback.basic_types.separate.points&runSkippedTests
+ */
+'use strict';
+goog.provide('framework.common.tcuSkipList');
+
+goog.scope(function() {
+
+ var tcuSkipList = framework.common.tcuSkipList;
+
+ var _skipEntries = {};
+ var _wildcardSkipEntries = {};
+ var _reason = "";
+
+ function _setReason(reason) {
+ _reason = reason;
+ }
+
+ function _skip(testName) {
+ if(testName.indexOf("*") >= 0){
+ testName = testName.split("*")[0];
+ _wildcardSkipEntries[testName] = _reason;
+ }else{
+ _skipEntries[testName] = _reason;
+ }
+ }
+
+ var runSkippedTests = false;
+ var queryVars = window.location.search.substring(1).split('&');
+ for (var i = 0; i < queryVars.length; i++) {
+ var value = queryVars[i].split('=');
+ if (decodeURIComponent(value[0]) === 'runSkippedTests') {
+ // Assume that presence of this query arg implies to run
+ // the skipped tests; the value is ignored.
+ runSkippedTests = true;
+ break;
+ }
+ }
+
+ if (!runSkippedTests) {
+ // Example usage:
+ //
+ // _setReason("Bugs in FooVendor 30.03 driver");
+ // _skip("transform_feedback.basic_types.separate.points.lowp_mat2");
+
+ // Please see https://android.googlesource.com/platform/external/deqp/+/7c5323116bb164d64bfecb68e8da1af634317b24
+ _setReason("Native dEQP also fails on these tests and suppresses them");
+ _skip("texture_functions.textureoffset.sampler3d_fixed_fragment");
+ _skip("texture_functions.textureoffset.isampler3d_fragment");
+ _skip("texture_functions.textureoffset.usampler3d_fragment");
+ _skip("texture_functions.textureprojoffset.sampler3d_fixed_fragment");
+ _skip("texture_functions.textureprojoffset.isampler3d_fragment");
+ _skip("texture_functions.textureprojoffset.usampler3d_fragment");
+ // Please see https://android.googlesource.com/platform/external/deqp/+/master/android/cts/master/src/gles3-hw-issues.txt
+ _skip("texture_functions.textureprojlod.isampler3d_vertex");
+ _skip("texture_functions.textureprojlod.usampler3d_vertex");
+ // Please see https://android.googlesource.com/platform/external/deqp/+/master/android/cts/master/src/gles3-test-issues.txt
+ _skip("texture_functions.textureprojlodoffset.usampler3d_vertex");
+ _skip("texture_functions.textureoffset.sampler3d_float_fragment");
+ _skip("texture_functions.textureprojoffset.sampler3d_float_fragment");
+ // Please see https://android.googlesource.com/platform/external/deqp/+/master/android/cts/master/src/gles3-driver-issues.txt
+ _skip("texture_functions.textureprojlodoffset.isampler3d_vertex");
+ _skip("texture_functions.texturegrad.samplercubeshadow*");
+ // Please see https://android.googlesource.com/platform/external/deqp/+/40ff528%5E%21/
+ // and https://bugs.chromium.org/p/angleproject/issues/detail?id=3094
+ _skip("texture_functions.texturelodoffset.sampler3d_float_vertex");
+
+ // https://android.googlesource.com/platform/external/deqp/+/0c1f83aee4709eef7ef2a3edd384f9c192f476fd/android/cts/master/src/gles3-hw-issues.txt#801
+ _setReason("Tricky blit rects can result in imperfect copies on some HW.");
+ _skip("blit.rect.nearest_consistency_mag");
+ _skip("blit.rect.nearest_consistency_mag_reverse_dst_x");
+ _skip("blit.rect.nearest_consistency_mag_reverse_src_dst_x");
+ _skip("blit.rect.nearest_consistency_mag_reverse_src_x");
+ _skip("blit.rect.nearest_consistency_mag_reverse_src_y");
+ _skip("blit.rect.nearest_consistency_min");
+ _skip("blit.rect.nearest_consistency_min_reverse_dst_x");
+ _skip("blit.rect.nearest_consistency_min_reverse_src_dst_x");
+ _skip("blit.rect.nearest_consistency_min_reverse_src_x");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_mag");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_mag_reverse_dst_x");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_dst_x");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_x");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_y");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_min");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_min_reverse_dst_x");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_dst_x");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_x");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_y");
+
+ // https://android.googlesource.com/platform/external/deqp/+/0c1f83aee4709eef7ef2a3edd384f9c192f476fd/android/cts/master/src/gles3-driver-issues.txt#381
+ _setReason("Tricky blit rects can result in imperfect copies on some drivers.");
+ _skip("blit.rect.out_of_bounds_linear");
+ _skip("blit.rect.out_of_bounds_reverse_src_x_linear");
+ _skip("blit.rect.out_of_bounds_reverse_src_y_linear");
+ _skip("blit.rect.out_of_bounds_reverse_dst_x_linear");
+ _skip("blit.rect.out_of_bounds_reverse_dst_y_linear");
+ _skip("blit.rect.out_of_bounds_reverse_src_dst_x_linear");
+ _skip("blit.rect.out_of_bounds_reverse_src_dst_y_linear");
+
+ // https://android.googlesource.com/platform/external/deqp/+/0c1f83aee4709eef7ef2a3edd384f9c192f476fd/android/cts/master/src/gles3-driver-issues.txt#368
+ _skip("blit.rect.nearest_consistency_out_of_bounds_mag_reverse_dst_y");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_mag_reverse_src_dst_y");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_min_reverse_dst_y");
+ _skip("blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_dst_y");
+
+ _setReason("Missing shadow sampler functions in D3D11");
+ // https://github.com/KhronosGroup/WebGL/issues/1870
+ // deqp/functional/gles3/shadertexturefunction/texture.html
+ _skip("texture_functions.texture.sampler2darrayshadow_vertex");
+ // deqp/functional/gles3/shadertexturefunction/texturelod.html
+ _skip("texture_functions.texturelod.sampler2dshadow_vertex");
+ _skip("texture_functions.texturelod.sampler2dshadow_fragment");
+ // deqp/functional/gles3/shadertexturefunction/texturelodoffset.html
+ _skip("texture_functions.texturelodoffset.sampler2dshadow_vertex");
+ _skip("texture_functions.texturelodoffset.sampler2dshadow_fragment");
+ // deqp/functional/gles3/shadertexturefunction/textureprojlod.html
+ _skip("texture_functions.textureprojlod.sampler2dshadow_vertex");
+ _skip("texture_functions.textureprojlod.sampler2dshadow_fragment");
+ // deqp/functional/gles3/shadertexturefunction/textureprojlodoffset.html
+ _skip("texture_functions.textureprojlodoffset.sampler2dshadow_vertex");
+ _skip("texture_functions.textureprojlodoffset.sampler2dshadow_fragment");
+ // deqp/functional/gles3/shadertexturefunction/texturegrad.html
+ _skip("texture_functions.texturegrad.sampler2dshadow_vertex");
+ _skip("texture_functions.texturegrad.sampler2dshadow_fragment");
+ _skip("texture_functions.texturegrad.sampler2darrayshadow_vertex");
+ _skip("texture_functions.texturegrad.sampler2darrayshadow_fragment");
+ // deqp/functional/gles3/shadertexturefunction/texturegradoffset.html
+ _skip("texture_functions.texturegradoffset.sampler2dshadow_vertex");
+ _skip("texture_functions.texturegradoffset.sampler2dshadow_fragment");
+ _skip("texture_functions.texturegradoffset.sampler2darrayshadow_vertex");
+ _skip("texture_functions.texturegradoffset.sampler2darrayshadow_fragment");
+ // deqp/functional/gles3/shadertexturefunction/textureprojgrad.html
+ _skip("texture_functions.textureprojgrad.sampler2dshadow_vertex");
+ _skip("texture_functions.textureprojgrad.sampler2dshadow_fragment");
+ // deqp/functional/gles3/shadertexturefunction/textureprojgradoffset.html
+ _skip("texture_functions.textureprojgradoffset.sampler2dshadow_vertex");
+ _skip("texture_functions.textureprojgradoffset.sampler2dshadow_fragment");
+
+ _setReason("MacOSX drivers share namespaces where they should not");
+ // https://github.com/KhronosGroup/WebGL/issues/1890
+ // deqp/data/gles3/shaders/scoping.html
+ _skip("scoping.valid.local_int_variable_hides_struct_type_vertex");
+ _skip("scoping.valid.local_int_variable_hides_struct_type_fragment");
+ _skip("scoping.valid.local_struct_variable_hides_struct_type_vertex");
+ _skip("scoping.valid.local_struct_variable_hides_struct_type_fragment");
+ _skip("scoping.valid.function_parameter_hides_struct_type_vertex");
+ _skip("scoping.valid.function_parameter_hides_struct_type_fragment");
+
+ _setReason("NVidia Linux drivers does not clamp gl_FragDepth to [0.0, 1.0]");
+ // Standalone Test case:
+ // https://github.com/Kangz/GLDriverBugs/blob/master/frag_depth_clamp_32f_depth/Main.cpp
+ // deqp/functional/gles3/fbodepthbuffer.html
+ _skip("depth.depth_write_clamp.depth_component32f");
+ _skip("depth.depth_write_clamp.depth32f_stencil8");
+ _skip("depth.depth_test_clamp.depth_component32f");
+ _skip("depth.depth_test_clamp.depth32f_stencil8");
+
+ _setReason("NVidia Linux driver bug in nested uniform block location assignment");
+ // crbug.com/621178
+ // deqp/functional/gles3/uniformapi/random.html
+ _skip("uniform_api.random.64");
+
+ _setReason("Mac AMD / Linux AMD / older mesa handles clipping of wide points incorrectly");
+ // crbug.com/642822
+ // deqp/functional/gles3/clipping.html
+ _skip("clipping.wide_points_full_viewport");
+ _skip("clipping.wide_points_partial_viewport");
+
+ _setReason("Some Windows AMD D3D11 drivers have issues with blit and depth/stencil formats.");
+ // crbug.com/638323
+ // deqp/functional/gles3/framebufferblit/depth_stencil.html
+ // Also see conformance2/rendering/blitframebuffer-stencil-only.html for 2.0.1 test.
+ _skip("blit.depth_stencil.depth24_stencil8_scale");
+ _skip("blit.depth_stencil.depth24_stencil8_stencil_only");
+
+ _setReason("Removed from native dEQP mustpass. Not passable on Adreno.");
+ // These tests have been skipped in native dEQP since 2015:
+ // https://android.googlesource.com/platform/external/deqp/+/ea026b329e6bf73f109cda914c90f08d5f7a5b8d
+ // They do not pass on Android/Qualcomm (Google Pixel 1, Pixel 3).
+ // It's not clear if the tests or the hardware are out-of-spec, but there's nothing we can do about it right now.
+ // See also: crbug.com/695679
+ _skip("derivate.dfdy.fbo_float.float_highp");
+ _skip("derivate.dfdy.fbo_float.vec2_highp");
+ _skip("derivate.dfdy.fbo_float.vec3_highp");
+ _skip("derivate.dfdy.fbo_float.vec4_highp");
+ _skip("derivate.dfdy.nicest.fbo_float.float_highp");
+ _skip("derivate.dfdy.nicest.fbo_float.vec2_highp");
+ _skip("derivate.dfdy.nicest.fbo_float.vec3_highp");
+ _skip("derivate.dfdy.nicest.fbo_float.vec4_highp");
+ _skip("derivate.dfdy.fastest.fbo_float.float_highp");
+ _skip("derivate.dfdy.fastest.fbo_float.vec2_highp");
+ _skip("derivate.dfdy.fastest.fbo_float.vec3_highp");
+ _skip("derivate.dfdy.fastest.fbo_float.vec4_highp");
+ } // if (!runSkippedTests)
+
+ /*
+ * Gets the skip status of the given test. Returns an
+ * object with the properties "skip", a boolean, and "reason", a
+ * string.
+ */
+ tcuSkipList.getSkipStatus = function(testName) {
+ var skipEntry = _skipEntries[testName];
+ if (skipEntry === undefined) {
+ return this._getWildcardSkipStatus(testName);
+ } else {
+ return { 'skip': true, 'reason': skipEntry };
+ }
+ }
+
+ /*
+ * Gets the skip status of the given tests like testpath*
+ * object with the properties "skip", a boolean, and "reason", a
+ * string.
+ */
+ tcuSkipList._getWildcardSkipStatus = function(testName) {
+ var skipEntry;
+ for (var key in _wildcardSkipEntries) {
+ if (testName.indexOf(key) >=0 ) {
+ skipEntry = _wildcardSkipEntries[key];
+ if (skipEntry != undefined) {
+ return { 'skip': true, 'reason': skipEntry };
+ }
+ }
+ }
+ return { 'skip': false, 'reason': '' };
+ }
+
+});