From febdcf511c0ec497b8006c6ba010d7bb23432bfc Mon Sep 17 00:00:00 2001 From: Courtney Goeltzenleuchter Date: Mon, 28 Oct 2019 10:54:03 -0600 Subject: [PATCH] Roll dEQP to VK-GL-CTS Switch from Android dEQP to Khronos GL CTS. We now mirror from the public Khronos Github github.com/KhronosGroup/VK-GL-CTS This includes a number of text fixes for GLES 2.0 conformance. Bug: angleproject:3914 Bug: angleproject:1656 Change-Id: I4cccd33e47752742cb989127c5883c0afd075b9e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879579 Reviewed-by: Jamie Madill Commit-Queue: Courtney Goeltzenleuchter --- .gitignore | 2 +- DEPS | 10 +++++----- src/tests/BUILD.gn | 4 ++++ src/tests/deqp.gni | 9 ++++++++- src/tests/deqp_support/angle_deqp_gtest.cpp | 6 +++--- .../deqp_support/angle_deqp_libtester_main.cpp | 8 ++++---- .../deqp_support/deqp_gles2_test_expectations.txt | 5 ----- .../deqp_khr_gles2_test_expectations.txt | 13 ------------- third_party/VK-GL-CTS/README.angle | 15 +++++++++++++++ third_party/deqp/README.angle | 13 ------------- 10 files changed, 40 insertions(+), 45 deletions(-) create mode 100644 third_party/VK-GL-CTS/README.angle delete mode 100644 third_party/deqp/README.angle diff --git a/.gitignore b/.gitignore index ce06c26d4..f85340cdf 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,6 @@ /src/tests/third_party/gles_conformance_tests /testing /third_party/cherry -/third_party/deqp/src /third_party/fuchsia-sdk /third_party/gles1_conform /third_party/glmark2/src @@ -44,6 +43,7 @@ /third_party/spirv-headers/src /third_party/spirv-tools/src /third_party/SwiftShader +/third_party/VK-GL-CTS/src /third_party/vulkan-headers/src /third_party/vulkan-loader/src /third_party/vulkan-tools/src diff --git a/DEPS b/DEPS index cd0966210..7251197b0 100644 --- a/DEPS +++ b/DEPS @@ -23,8 +23,8 @@ vars = { # Version of Chromium our Chromium-based DEPS are mirrored from. 'chromium_revision': '5fe256ab5e5eb3d73d23ab52c69ba113145d921b', - # Current revision of dEQP. - 'deqp_revision': 'd3eef28e67ce6795ba3a2124aaa977819729d45f', + # Current revision of VK-GL-CTS (a.k.a dEQP). + 'vk_gl_cts_revision': '54ec6f2b1390bf33ea10424dca610f8bcbfefa06', # Current revision of glslang, the Khronos SPIRV compiler. 'glslang_revision': 'b131630e7c749a5dc19faa458024260c71fb170f', @@ -77,14 +77,14 @@ deps = { 'condition': 'not build_with_chromium', }, - # Cherry is a dEQP management GUI written in Go. We use it for viewing test results. + # Cherry is a dEQP/VK-GL-CTS management GUI written in Go. We use it for viewing test results. 'third_party/cherry': { 'url': '{android_git}/platform/external/cherry@4f8fb08d33ca5ff05a1c638f04c85bbb8d8b52cc', 'condition': 'not build_with_chromium', }, - 'third_party/deqp/src': { - 'url': '{chromium_git}/external/deqp@{deqp_revision}', + 'third_party/VK-GL-CTS/src': { + 'url': '{chromium_git}/external/github.com/KhronosGroup/VK-GL-CTS@{vk_gl_cts_revision}', }, 'third_party/fuchsia-sdk': { diff --git a/src/tests/BUILD.gn b/src/tests/BUILD.gn index 7bd34b9d9..050c97864 100644 --- a/src/tests/BUILD.gn +++ b/src/tests/BUILD.gn @@ -256,6 +256,7 @@ if (is_win || is_linux || is_android || is_mac || is_fuchsia) { "${angle_root}:angle_system_utils", "${angle_root}:angle_util", "${angle_root}:angle_util_loader_headers", + "${angle_spirv_tools_dir}:spvtools_val", ] data_deps = [ @@ -575,6 +576,7 @@ if (build_angle_deqp_tests && !is_fuchsia) { "-Wno-string-conversion", # implicit conversion turns string literal into bool "-Wno-unused-local-typedef", "-Wno-unused-result", # ignoring return value of function declared with 'nodiscard' attribute + "-Wno-unused-function", ] } @@ -948,6 +950,8 @@ if (build_angle_deqp_tests && !is_fuchsia) { public_deps = [ ":angle_deqp_framework_egl", ":angle_deqp_glshared", + "${angle_glslang_dir}:glslang_sources", + "${angle_spirv_tools_dir}:spvtools_val", ] public_configs = [ ":angle_deqp_khr_common_config" ] diff --git a/src/tests/deqp.gni b/src/tests/deqp.gni index e993b751f..02030e0da 100644 --- a/src/tests/deqp.gni +++ b/src/tests/deqp.gni @@ -2,7 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -deqp_path = "../../third_party/deqp/src" +import("../../gni/angle.gni") +deqp_path = "../../third_party/VK-GL-CTS/src" deqp_include_dirs = [ "$deqp_path/executor", @@ -24,6 +25,8 @@ deqp_include_dirs = [ "$deqp_path/modules/gles31/functional", "$deqp_path/modules/gles31/stress", "$deqp_path/modules/glusecases", + "${angle_glslang_dir}", + "${angle_spirv_tools_dir}", ] deqp_gles2_sources = [ @@ -49,6 +52,8 @@ deqp_gles2_sources = [ "$deqp_path/modules/gles2/functional/es2fBufferTestUtil.hpp", "$deqp_path/modules/gles2/functional/es2fBufferWriteTests.cpp", "$deqp_path/modules/gles2/functional/es2fBufferWriteTests.hpp", + "$deqp_path/modules/gles2/functional/es2fClipControlTests.cpp", + "$deqp_path/modules/gles2/functional/es2fClipControlTests.hpp", "$deqp_path/modules/gles2/functional/es2fClippingTests.cpp", "$deqp_path/modules/gles2/functional/es2fClippingTests.hpp", "$deqp_path/modules/gles2/functional/es2fColorClearTest.cpp", @@ -976,6 +981,7 @@ deqp_khr_test_module_headers = [ "$deqp_path/external/openglcts/modules/glesext/texture_border_clamp/esextcTextureBorderClampTests.hpp", "$deqp_path/external/openglcts/modules/glesext/texture_buffer/esextcTextureBufferTests.hpp", "$deqp_path/external/openglcts/modules/glesext/texture_cube_map_array/esextcTextureCubeMapArrayTests.hpp", + "$deqp_path/external/openglcts/modules/glesext/texture_shadow_lod/esextcTextureShadowLodFunctionsTest.hpp", "$deqp_path/external/openglcts/modules/glesext/draw_buffers_indexed/esextcDrawBuffersIndexedTests.hpp", "$deqp_path/modules/gles2/tes2Context.hpp", "$deqp_path/modules/gles2/tes2TestPackage.hpp", @@ -1365,6 +1371,7 @@ deqp_khr_glesext_sources = [ "$deqp_path/external/openglcts/modules/glesext/texture_cube_map_array/esextcTextureCubeMapArrayTests.cpp", "$deqp_path/external/openglcts/modules/glesext/texture_cube_map_array/esextcTextureCubeMapArrayTex3DValidation.cpp", "$deqp_path/external/openglcts/modules/glesext/texture_cube_map_array/esextcTextureCubeMapArrayTex3DValidation.hpp", + "$deqp_path/external/openglcts/modules/glesext/texture_shadow_lod/esextcTextureShadowLodFunctionsTest.cpp", ] deqp_framework_debase_sources = [ diff --git a/src/tests/deqp_support/angle_deqp_gtest.cpp b/src/tests/deqp_support/angle_deqp_gtest.cpp index e6e65efba..e24eca123 100644 --- a/src/tests/deqp_support/angle_deqp_gtest.cpp +++ b/src/tests/deqp_support/angle_deqp_gtest.cpp @@ -58,9 +58,9 @@ std::string DrawElementsToGoogleTestName(const std::string &dEQPName) } const char *gCaseListSearchPaths[] = { - "/../../sdcard/chromium_tests_root/third_party/angle/third_party/deqp/src", - "/../../third_party/deqp/src", - "/../../third_party/angle/third_party/deqp/src", + "/../../sdcard/chromium_tests_root/third_party/angle/third_party/VK-GL-CTS/src", + "/../../third_party/VK-GL-CTS/src", + "/../../third_party/angle/third_party/VK-GL-CTS/src", }; const char *gTestExpectationsSearchPaths[] = { diff --git a/src/tests/deqp_support/angle_deqp_libtester_main.cpp b/src/tests/deqp_support/angle_deqp_libtester_main.cpp index ea9f09bce..6d7a8ed18 100644 --- a/src/tests/deqp_support/angle_deqp_libtester_main.cpp +++ b/src/tests/deqp_support/angle_deqp_libtester_main.cpp @@ -38,10 +38,10 @@ tcu::RandomOrderExecutor *g_executor = nullptr; const char *kDataPaths[] = { ".", "../../sdcard/chromium_tests_root", - "../../sdcard/chromium_tests_root/third_party/angle/third_party/deqp/src", - "../../third_party/angle/third_party/deqp/src", - "../../third_party/deqp/src", - "third_party/deqp/src", + "../../sdcard/chromium_tests_root/third_party/angle/third_party/VK-GL-CTS/src", + "../../third_party/angle/third_party/VK-GL-CTS/src", + "../../third_party/VK-GL-CTS/src", + "third_party/VK-GL-CTS/src", }; bool FindDataDir(std::string *dataDirOut) diff --git a/src/tests/deqp_support/deqp_gles2_test_expectations.txt b/src/tests/deqp_support/deqp_gles2_test_expectations.txt index f555f973e..b12d7cd58 100644 --- a/src/tests/deqp_support/deqp_gles2_test_expectations.txt +++ b/src/tests/deqp_support/deqp_gles2_test_expectations.txt @@ -69,11 +69,6 @@ // //////////////////////////////////////////////////////////////////////////////// -// dEQP bugs -1028 : dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.srgb8 = FAIL -1028 : dEQP-GLES2.functional.fbo.completeness.renderable.texture.stencil.srgb8 = FAIL -1028 : dEQP-GLES2.functional.fbo.completeness.renderable.texture.depth.srgb8 = FAIL - // Vertex attribute aliasing is not supported on D3D 3467 D3D9 : dEQP-GLES2.functional.attribute_location.bind_aliasing.cond* = FAIL 3467 D3D9 : dEQP-GLES2.functional.attribute_location.bind_aliasing.max_cond* = FAIL diff --git a/src/tests/deqp_support/deqp_khr_gles2_test_expectations.txt b/src/tests/deqp_support/deqp_khr_gles2_test_expectations.txt index b733305ad..2146add3a 100644 --- a/src/tests/deqp_support/deqp_khr_gles2_test_expectations.txt +++ b/src/tests/deqp_support/deqp_khr_gles2_test_expectations.txt @@ -31,16 +31,3 @@ // Depth/stencil related failures. 3457 VULKAN : KHR-GLES2.core.internalformat.texture2d.depth_stencil_unsigned_int_24_8_depth_stencil = FAIL - -// Test bug, use of sized internal format. Passes with patch from bug. -3797 VULKAN : KHR-GLES2.texture_3d.framebuffer_texture.rgba8 = SKIP - -// GL_RGBA8 is not supported in GLES2 -// GL_OES_rgb8_rgba8 only enables GL_RGBA8 for render buffers (not textures) -3797 VULKAN : KHR-GLES2.texture_3d.copy_sub_image.rgba8 = FAIL - -// Bug in dEQP uses an incorrect enum (GL_HALF_FLOAT instead of GL_HALF_FLOAT_OES) -3451 : KHR-GLES2.core.internalformat.texture2d.rgb_half_float_rgb16f = FAIL -3451 : KHR-GLES2.core.internalformat.texture2d.rgba_half_float_rgba16f = FAIL -3451 : KHR-GLES2.core.internalformat.texture2d.rgb_half_float_rgb16f_linear = FAIL -3451 : KHR-GLES2.core.internalformat.texture2d.rgba_half_float_rgba16f_linear = FAIL diff --git a/third_party/VK-GL-CTS/README.angle b/third_party/VK-GL-CTS/README.angle new file mode 100644 index 000000000..1fda4857b --- /dev/null +++ b/third_party/VK-GL-CTS/README.angle @@ -0,0 +1,15 @@ +Name: Khronos dEQP / CTS +Short Name: VK-GL-CTS +Version: 1.0 +URL: https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS +SOURCE CODE: git clone -b VK-GL-CTS https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS +Date: 20/06/2016 +Revision: f4f3d8079e7a37d7675ab93583e6438d0bca0e58 +Security Critical: no +License: Apache 2.0 +License File: LICENSE + +Description: +VK-GL-CTS (formally dEQP) is a set of tests and testing tools for GPUs and their drivers. It +currently supports OpenGL ES 2.0 - 3.1 & AEP, EGL and Vulkan (though ANGLE only uses the GLES +pieces). The dEQP has been part of the Android CTS since the L release. diff --git a/third_party/deqp/README.angle b/third_party/deqp/README.angle deleted file mode 100644 index 40bc06677..000000000 --- a/third_party/deqp/README.angle +++ /dev/null @@ -1,13 +0,0 @@ -Name: drawElements Quality Program -Short Name: dEQP -Version: 1.0 -URL: https://source.android.com/devices/graphics/testing.html -SOURCE CODE: git clone -b deqp-dev https://android.googlesource.com/platform/external/deqp/ -Date: 20/06/2016 -Revision: f4f3d8079e7a37d7675ab93583e6438d0bca0e58 -Security Critical: no -License: Apache 2.0 -License File: LICENSE - -Description: -dEQP is a set of tests and testing tools for GPUs and their drivers. It currently supports OpenGL ES 2.0 - 3.1 & AEP and EGL. The dEQP has been part of the Android CTS since the L release.