src/tests/BUILD.gn


Log

Author Commit Date CI Message
Manh Nguyen 9dee8e3f 2020-06-15T10:59:18 Automate testing of capture_replay automation script will: 1. compile all tests in angle_end2end with framecapture enabled 2. run each test with frame capture 3. compile CaptureReplayTest with cpp trace files 4. Run CaptureReplayTest Test: run_tests_with_framecapture.py Bug: angleproject:4749 Change-Id: Ieb21c6137653632d73beedea48712e46fc15a0f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246321 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Antonio Maiorano 13816d2d 2020-06-16T14:27:04 Move vulkan_headers/entry_points to common/vulkan This will allow us to move common headers, such as extension headers, to common/vulkan. Bug: b/159027603 Bug: b/154620295 Change-Id: I1ff73dc5b7ee8f7dfb3ac0c5f30bd4b3a8183aeb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248205 Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Antonio Maiorano <amaiorano@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9fa671d5 2020-06-05T14:19:18 Make GLES 1 tests use ANGLE EGL headers. This will allow us to more easily support a different test target topology for the standalone test harness that uses an intermediate source_set. Also it's better in the long run to only have to worry about one set of EGL headers. Bug: angleproject:3162 Change-Id: I738dbb68df1abc0c0569748e18d6826914d90a52 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2233399 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Michael Spang e8d71eb3 2020-05-12T14:40:44 Vulkan: Fix ANGLE_ENABLE_VULKAN_VALIDATION_LAYERS_BY_DEFAULT Unfortunately this was broken by 605af42e1 ("Vulkan: Move ICD overrides to a common place"). This adds an unconditional dependency on the layers to tests. Tests don't respect angle_enable_vulkan_validation_layers, so we need to ship the layers irrespective of that setting. Bug: angleproject:4634 Change-Id: Ided291ea645a72e6c3bdb960e55d15013aa20a3a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197279 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 544a80ef 2020-05-12T11:46:15 Perf: Detect context used by trace Capturing supports multiple contexts, which are hard coded into the function and file names. On desktop, they've typically been "1", but on Android we've seen context "2" or "3". This CL adds the ability to detect the context number used by the trace, and programmatically adds it to generated files. Test: angle_perftests --gtest_filter="*Trace*" Bug: b/152512564 Bug: angleproject:4036 Change-Id: I64616b93a704446b08cb614b2a74ab1932ef1f40 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197283 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 5b35c7f6 2020-05-07T13:40:55 Fix up screenshot saving for trace tests. Now works when run in a sequence. Also saves RGB images to avoid issues with the alpha being inconsistent and also flips images vertically to fix the rendering. Bug: angleproject:4615 Change-Id: I8d3b38c5d914e0ca2227320ac42a0e28acd12c4d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2187971 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill d08f1d8d 2020-05-05T12:54:07 Perf tests: Add screenshot capture mode. This adds a "--screenshot-dir" argument to capture screenshots. If we're running with screenshot capture then the test will early exit after the first capture. The screenshots use the same naming pattern as the test name: TracePerfTest.Run/vulkan_trex_200 -> angle_vulkan_trex_200.png Note the screenshot dir is relative to the test binary directory, not the CWD. Also adds a PNG saving utility function. Bug: angleproject:4615 Change-Id: I1de8ae6a6e6892586bb0b743e7b9a842f90f98e5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2184834 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Nico Weber c02cdff7 2020-05-05T19:52:17 Revert "Add -Wno-pointer-to-int-cast" This reverts commit 226bba3c755ec8105c895c87450c1ebb0d8159e1. Reason for revert: Should no longer be needed after https://chromium-review.googlesource.com/c/angle/angle/+/2168617 Original change's description: > Add -Wno-pointer-to-int-cast > > This is the last remaining instance of the warning across Chromium. It's > fixed upstream but I can't seem to figure out how to successfully roll > deqp. So suppressing it here for now. > > This can be removed once the deqp in Angle has > https://github.com/KhronosGroup/VK-GL-CTS/pull/199. > > Change-Id: Ie954bb2a3d86ea0de644e2a78051531b396e88a8 > Bug: chromium:1054220 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165365 > Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> TBR=geofflang@chromium.org,courtneygo@google.com,aeubanks@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:1054220, angleproject:4588 Change-Id: Ib26534cbb48df6d51af137babb95f3aeb6825043 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182891 Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Nico Weber <thakis@chromium.org>
Cody Northrop a5829b2a 2020-04-27T15:41:37 deps: Roll VK-GL-CTS * Moved xexml files to a library * Added new waiver system to GN * Added new KHR GLES 3.x tests to GN for nearest sampling edge cases * Updated expectations for new tests * Manual roll of glslang to bring in new dependencies. Test: deqp Bug: angleproject:4588 Change-Id: I7b9bcc28e9c9ba6abe4fa4873f732677ed3d276d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168617 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Michael Spang 4271443d 2020-03-04T20:33:36 Fix VulkanExternalImageTest on SwiftShader Check isSwiftShader() for whether to load swiftshader instead of the default ICD. The spec says we should query GL_DEVICE_UUID_EXT & co for this, but we haven't implemented those queries yet. Bug: angleproject:4092 Change-Id: Ifd74d6b6706f7b1fcbe5d82a33ecf70e631e26b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2088660 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Ancheng Qiao 78f2e4b8 2020-03-24T16:21:40 Add gles1 covegl test compile Covegl test is hard to suit gtest, so just compile it without gtest (angle_gles1_covegl_no_gtest), we can get the test result by exit code. Bug: angleproject:2303 Change-Id: I67a930c91f23c02e72022329c712a0749e4a903c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2126587 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 92b3a720 2020-04-27T15:52:56 Capture/Replay: Generate code integration. This sources the trace list from a json file and uses that to make the "glue" that works with each individual trace test. Bug: angleproject:4590 Change-Id: I40808cbd0e00f9ed01f93c4cfbd678401db3fec0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168539 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 1398080c 2020-04-27T16:16:15 Capture/Replay: Simplify .gni integration. Moves a lot of the code out of the gni file into tests/BUILD.gn. In preparation for auto-generating the gni file as a simple array of trace test names. Bug: angleproject:4590 Change-Id: Iaa2b7872dc6e705d59108fa7532594bdc65d365a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168359 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Arthur Eubanks 226bba3c 2020-04-24T09:57:10 Add -Wno-pointer-to-int-cast This is the last remaining instance of the warning across Chromium. It's fixed upstream but I can't seem to figure out how to successfully roll deqp. So suppressing it here for now. This can be removed once the deqp in Angle has https://github.com/KhronosGroup/VK-GL-CTS/pull/199. Change-Id: Ie954bb2a3d86ea0de644e2a78051531b396e88a8 Bug: chromium:1054220 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165365 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Ancheng Qiao 1478ec3c 2020-03-18T09:42:37 Add gles1 primtest tests Bug: angleproject:2303 Change-Id: Idece2eb2fb291799c9aae811ce63dafdd9333887 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2143029 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Ancheng Qiao afd2cfa6 2020-03-19T17:39:23 Add gles1 covgl tests CovglTest have additional error check in TEST ProbeError(Call* functions, use a tricky method here, alias all ProbeError to ProbeErrorANGLE. add "#define ProbeEror ProbeErrorANGLE" to all covgl source code besides shell.c Currently for win/mac platform block on $gles1_conform_root/platform/platform.h conflict with $angle_root/include/platform/Platform.h Bug: angleproject:2303 Change-Id: I96679968bf539d6ae3bdfc3aa89150381679cbb5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2117950 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7e453a25 2020-03-15T22:11:03 Capture/Replay: Use zlib to compress data files. Gives about a 2-3x reduced data file size. Should help reduce the time we spent transferring trace files on Android. This feature is implemented as a parameter to the capture/replay tool. This keeps backwards compatiblity if we ever need to integrate a cpp replay into an environment that doesn't have access to zlib for decompression. We'll need to update the traces to take advantage of the compression. Bug: angleproject:4484 Change-Id: Id7994efe3c0d529b85fa7e7f1b00444e630dd2cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2104555 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7c334c56 2020-03-15T17:37:15 Re-enable optimization for angle_perftests. This CL restricts the workaround to the trace perf tests. These trace tests are too big to optimize. Also includes a fix for a 32-bit Windows warnings. We'll need to update the build file to remove a suppression once the traces are updated. Bug: angleproject:3630 Change-Id: Id13a0050fc2a645aa572b8c9079908023b232f28 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103084 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 42c453fe 2020-03-15T18:23:15 Move perf test common files to a source set. Similarly to a prior patch this organizes the common perf test sources into a single target. This will allow us to more easily support setting compiler flags on particular perf test sources. This also fixes some build errors that popped up when new warnings were enabled. Bug: angleproject:3630 Change-Id: I866885199f93a5055e8d160e39f72d1f8209bc75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103086 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 5df2c9ea 2020-03-15T17:28:43 Refactor ANGLE common test utils. This reduces code duplication by including a common set of sources in a single place. New test sets will be a bit easier to add. It also encapsulates the dependencies a bit better when we pull the test utils out of the test targets. Unblocks a follow-up CL that moves the trace perf test sources into their own file so we can re-enable optimizations in the main perf test target. New warnings popped up in a few of the files because of the new source set enabling more warnings. This CL also fixes all of those. Bug: angleproject:3630 Change-Id: Ic30cb30fb4288c4dbbbd29f9bdf04be51e8a6b30 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103083 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 869e901a 2020-03-14T20:27:09 Temporarily disable optimizations in angle_perftests. The optimization for the large trace perf tests was so costly that in some configs it would fail to build at all. This could cause build failures in the ANGLE CQ. Disable optimization to work around this until we can isolate the compiler flags to just the trace perf tests. Note: this only applies to the test harness. ANGLE itself is still optimized in release builds by default. Trace trimming would also help alleviate this problem. We could also consider removing a few traces temporarily. Bug: angleproject:3630 Change-Id: I2bd8fb76f330692aa715249ca8656965b5a29d8c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103674 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1393bf9e 2020-02-28T22:03:27 Vulkan: Timestamp internal RenderPasses in perf tests. This change book-ends RenderPasses in the Vulkan back-end with timestamp queries. This allows us to write out a trace of GPU/CPU that we can inspect in Chrome. To enable the GPU trace you can define ANGLE_ENABLE_VULKAN_GPU_TRACE_EVENTS in ContextVk.cpp and run the angle_perftests suite with --enable-trace. Note that we ran into some issues with the implementation not returning monotonic timestamps. This may be a driver bug but bears more investigation. Bug: angleproject:4433 Change-Id: I0e6a364367f15183068e55686549cb418aa94c2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2081380 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Michael Spang 468dfed3 2020-02-21T12:12:51 Reformat GN files Otherwise this blocks the CQ at presubmit. Bug: angleproject:3492 Change-Id: I3cf77c72daa358f5e1eabecf1dcb8808a1dc9e07 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068538 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov e3ba0d7d 2020-01-28T13:46:13 Disable 'nodiscard' warning on MSVC for dEQP. Bug: angleproject:4358 Change-Id: I774b4ba442e27935a676f2ce82356e8c77a0db27 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024334 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Michael Spang 4a8fa19f 2020-01-27T17:19:57 Fuchsia: Switch to gfx_tests sandbox configuration The default sandbox config for tests built in chromium doesn't allow access to the GPU or display. Switch to the gfx_tests sandbox config to allow the tests to run. Bug: angleproject:4350 Change-Id: Ib80db196ef55df694369cfc7a3cf18327ce7c952 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023908 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 080d711b 2020-01-08T13:04:44 Tests: Add a perf test using traces This test will load traces and cycle through a set of frames. The new tests are: TracePerfTest.Run/gl_trex_200_210 TracePerfTest.Run/gl_trex_800_810 TracePerfTest.Run/gl_trex_900_910 TracePerfTest.Run/gl_trex_1300_1310 To download the traces, you must be granted access and authenticate with the cloud. See the steps in RestrictedTraces.md for this. Then add the following to the end of your .gclient file: "custom_vars": { "checkout_angle_internal":"True" }, And run `glcient runhooks`. To enable building the test, add the following GN arg: build_angle_trace_perf_tests = true See the new markdown document for ways to execute the tests. Bug: angleproject:3630 Change-Id: Ic25cd94fb36b35fcf187e88d3bf9548c65f59755 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1949605 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 683dd1d6 2020-01-13T17:21:52 GN: Move util build code into util/BUILD.gn. Prepratory clean up for WinUWP support. Bug: angleproject:4182 Change-Id: I97cc6cb42a50c6b57ca7d375d1e0a6b3da7aa9d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1998673 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Eric Binet 4ffc254e 2020-01-08T09:58:24 Only initialize the timestamp query pools if the extension is available. Also added a few assertions to ensure that timestamp queries aren't attempted when support is missing. Bug: angleproject:4114 Change-Id: Ie6d7d5face59f9bc137aebd86c9d0e965773e6e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1992184 Commit-Queue: Eric Binet <ericbinet@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5407aaa0 2019-12-16T15:50:12 Re-land "Add new test runner harness." (#2) Re-land #2 changes: * export labels are fixed for the CFI build * crash test disabled because of flakiness and issues with asan Re-land changes: * Unit test is suppressed in ASAN * --deqp-case is fixed * Debug layer errors should correctly work with failure expectations Original message: The ANGLE test harness is a harness around GoogleTest that provides functionality similar to the Chromium test harness. It supports: * splitting a test set into shards * catching and reporting crashes and timeouts * outputting to the Chromium JSON test results format * multi-process execution Unit tests are added in test_utils_unittest.cpp. Bug: angleproject:3162 Bug: chromium:1030192 Change-Id: I71d66a407ea0e53d73cbe75b5b4bfb9e73791534 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965091 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Brandon Schade 5cfab195 2019-10-28T09:12:53 Vulkan: Add test that logs supported texture formats Add a whitebox test to log all supported GLES formats for the active Vulkan ICD. The test object is dependent on libANGLE's gl_enum_util.* files as we need it to print out human readable values in the PrintAllFormatSupport test. Test: angle_white_box_tests --gtest_filter=*PrintAllSupportedFormats* Bug: angleproject:4093 Change-Id: I99d74935b705b2984f6320ed80a0e977c8fcd4be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1930607 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 9190f49c 2019-12-16T16:03:57 GN: Make new angle_test_utils target. This source set target lets other targets import the test utils without needing to export them. They get built into angle_util. They also get compiled into the various tests and samples. The change also fixes export issues. Moves some of the GN logic into the util/ subfolder. Bug: angleproject:3162 Bug: chromium:1030192 Change-Id: If99d201092ad8541c0de60b3bd893ac9b5875270 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1968259 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 554b453c 2019-12-12T13:09:30 gn: Add 'test_only' label to util targets. Clarifies that angle_util is only used in tests and samples. Bug: angleproject:3162 Change-Id: I9a578cf7a9a09b2c3fd4683155824ed2e72f68cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1964934 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill b92ec244 2019-12-06T15:08:54 Revert "Re-land "Add new test runner harness."" This reverts commit e20560faf1de86c01198143ef7733a12a098a90b. Reason for revert: Now fails on Linux CFI and also is a bit flaky. Original change's description: > Re-land "Add new test runner harness." > > Re-land changes: > > * Unit test is suppressed in ASAN > * --deqp-case is fixed > * Debug layer errors should correctly work with failure expectations > > Original message: > > The ANGLE test harness is a harness around GoogleTest that provides > functionality similar to the Chromium test harness. It supports: > > * splitting a test set into shards > * catching and reporting crashes and timeouts > * outputting to the Chromium JSON test results format > * multi-process execution > > Unit tests are added in test_utils_unittest.cpp. > > Bug: angleproject:3162 > Change-Id: I841f2b5dfe51f7f44dac68324bdf6afd418b8bfb > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1948240 > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> TBR=ynovikov@chromium.org,ianelliott@google.com,jonahr@google.com,jmadill@chromium.org Change-Id: Ibfd65b8b18ead3a232abb6cb75fd6489b0ff5f38 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3162 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1954570 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e20560fa 2019-12-04T13:18:36 Re-land "Add new test runner harness." Re-land changes: * Unit test is suppressed in ASAN * --deqp-case is fixed * Debug layer errors should correctly work with failure expectations Original message: The ANGLE test harness is a harness around GoogleTest that provides functionality similar to the Chromium test harness. It supports: * splitting a test set into shards * catching and reporting crashes and timeouts * outputting to the Chromium JSON test results format * multi-process execution Unit tests are added in test_utils_unittest.cpp. Bug: angleproject:3162 Change-Id: I841f2b5dfe51f7f44dac68324bdf6afd418b8bfb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1948240 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e3c25715 2019-12-03T14:08:36 gn: Minor improvements. Renaming "all" targets to reduce duplication. Also add libGLESv1_CM to "angle". And remove "shader_translator" since we already had "angle_shader_translator". An attempt to work around "invalid COFF sections" error that is popping up on the MSVC try bots. Bug: None Change-Id: I105aa5e59f67173643a3a2071b2aff345b5a6135 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1947457 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 8f31872c 2019-12-03T18:34:52 Revert "Add new test runner harness." This reverts commit fb40d231c3e2ee7c38f8445ef5defc0ab0f5f15d. Reason for revert: Has a bug with the ASan build and also has a few bugs with ANGLE standalone test expectations an filter. Bug: chromium:1030192 Bug: angleproject:4193 Original change's description: > Add new test runner harness. > > The ANGLE test harness is a harness around GoogleTest that provides > functionality similar to the Chromium test harness. It supports: > > * splitting a test set into shards > * catching and reporting crashes and timeouts > * outputting to the Chromium JSON test results format > * multi-process execution > > Unit tests are added in test_utils_unittest.cpp. > > Bug: angleproject:3162 > Change-Id: Idb15f113de8eb32db12bc93542de93b08d7c1447 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1478016 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> TBR=ynovikov@chromium.org,jonahr@google.com,jmadill@chromium.org Change-Id: I647e747571784b1ca7c1d0687193c70a63eb08d1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3162 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1947456 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill fb40d231 2019-12-02T16:39:18 Add new test runner harness. The ANGLE test harness is a harness around GoogleTest that provides functionality similar to the Chromium test harness. It supports: * splitting a test set into shards * catching and reporting crashes and timeouts * outputting to the Chromium JSON test results format * multi-process execution Unit tests are added in test_utils_unittest.cpp. Bug: angleproject:3162 Change-Id: Idb15f113de8eb32db12bc93542de93b08d7c1447 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1478016 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jonah Ryan-Davis 5afd5ec6 2019-10-25T10:53:40 Vulkan support for MacOS (using SwiftShader) Created a new WindowSurface/Display for MacOS/Vulkan, along with some GN changes to get it working. Bug: 1015454 Change-Id: I3f7a12f173795efe598856c702ce53b1e50831eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1880163 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2ed71c81 2019-11-27T11:42:08 Vulkan: Isolate DisplayVk.h from Display.cpp. With this change we no longer can access Vulkan (or Volk) headers in the ANGLE front-end. The only header that needs to be visible is the new "DisplayVk_api.h". This will simplify a bit of Volk integration. Also reworks how the entry points and headers are exposed to the tests. Bug: angleproject:3740 Change-Id: Ic1434f304619427ed6ad6370bc090ceb7858df94 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1936707 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Jamie Madill ea1c2400 2019-11-27T10:49:57 Suppress -Wsizeof-array-div in dEQP. Until the upstream bug is fixed. Tracked in https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/2127 Bug: angleproject:4176 Change-Id: I094735e1153c83439db54b43545297466ef2e2c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1940570 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Le Hoang Quyen 6fcc0bb8 2019-11-21T01:19:40 Metal: Re-add end2end test configs (running test is still disabled) angle_test_instantiate.cpp & angle_test_instantiate_apple.mm: - Disabled metal platform selection on pre-10.13 mac devices for Bug: angleproject:4153 Explicitly disabled tests on metal: - DifferentStencilMasksTest.DrawWithDifferentMask - PointSpritesTest.PointSizeAboveMaxIsClamped - WebGL2ReadOutsideFramebufferTest.CopyTexSubImage3D This requires the crash fix in http://crrev.com/c/1924101 Bug: angleproject:4153 Bug: angleproject:2634 Change-Id: I95046d731a8ba7414cf1a1f4b6f2940282725872 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1926389 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill 10f41ebb 2019-11-19T12:53:36 GN: Make dEQP import libEGL/libGLESv2 as data_deps. This removes the hard link dependency on ANGLE. Allows us to use ANGLE dEQP tests with msan. Otherwise they were complaining about missing shared libraries. Also would eventually let us test ANGLE dEQP tests against a native driver. Was done as a part of investigating SwapBuffers crashes on SwiftShader. Bug: angleproject:4060 Change-Id: I569de15573c8eb7808bd7783f1a514655d1c6422 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1898207 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Ethan Lee d22b8be4 2019-11-15T12:26:39 GN: Make X11 optional, based on a user-defined variable. Not all Linux platforms will have X11 available (Wayland, GGP), so we have to declare a variable that checks use_x11 separately. Bug: angleproject:4116 Change-Id: I7e33956da6344b8db4d4e32dbbd1b42f58f7019c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1919632 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 11c487a8 2019-10-25T16:50:01 Manually copy dEQP data files to output directory dEQP has data files that live in several directories within dEQP's source tree. For example, GLES3 has data files that live within: data/gles3/data/ external/graphicsfuzz/data/gles3/ However, we can only tell dEQP about a single data directory during initialization of dEQP. To get around this, we are manually copying all of the necessary data files to the output generated files directory and pointing dEQP to this single directory. This also helps us solve a second problem related to the paths that dEQP uses when accessing graphicsfuzz data files. For the graphicsfuzz tests, dEQP will attempt to open the necessary shaders by accessing them with the path: data/gles3/graphicsfuzz/ However, those files would normally live at the path that matches their location within the source tree: external/graphicsfuzz/data/gles3/graphicsfuzz/ As part of the manual copy of these data files, we are also able to strip the extra 'external/graphicsfuzz/' portion of the path. Bug: angleproject:2322 Test: dEQP Change-Id: Ibc96442c221485e2f246890fa8fe51f090c5e222 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1881759 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Geoff Lang 6e687af2 2019-10-17T14:36:41 Support standalone Android builds in ANGLE. By disabling apk generation, we can build all of our targets in a standalone ANGLE checkout on Linux. This allows tools like gn desc to give us useful information about Android builds. BUG=angleproject:4026,angleproject:2344 Change-Id: Ic46348fd06c5174ce5e5a4d89ceb391246c6ac6b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866080 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Courtney Goeltzenleuchter febdcf51 2019-10-28T10:54:03 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 <jmadill@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 95a736bd 2019-10-09T10:26:25 Reland "Add more test_utils functions." This is a reland of 5fcfcea4a9379633a83a67fc1d94938cb31f2a9c Re-land uses static linking with angle_util. The root cause of the CFI error wasn't solved. Static linking works around the problem by not using any export rules. Second re-land fixes missing imports for libEGL and libGLESv2 static varieties. Original change's description: > Add more test_utils functions. > > Includes methods for creating temporary files, deleting files, and > reading files into a string. Also renames GetPathSeparator to mention > it's only used for environment variables. Includes a new virtual type > angle::Process that will be used to implement cross-platform async > Process launching for tests. Also includes a way to specify a custom > crash handler callback. > > Also adds a few unit tests for the new functionality. They are disabled > on Android because the functions are not needed by the new test runner. > > Bug: angleproject:3162 > Change-Id: I3e2c2e9837608884c98379fa0f78c9ffbe158d73 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1821940 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Bug: chromium:1015810 Bug: angleproject:3162 Change-Id: I2a18b819b0f91df610ad12ffedea2b38349fe7cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879859 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill a9f11bf1 2019-10-21T08:39:14 GN: Separate out constructor/destructor warnings. This will allow for the capture/replay sample to disable the warnings. We'd like to keep them enabled for most of ANGLE code. Bug: angleproject:3611 Change-Id: I3cc7af26fa54c03cc5b79727e7b403a1b218a903 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869544 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill f939cb63 2019-10-20T21:44:36 Revert "Reland "Add more test_utils functions."" This reverts commit 7923e234bc458eda5936b8cb4f09fa19e28c0452. Reason for revert: Fails compilation on rollers: [2097/6048] SOLINK ./lib_angle_unittests__library.cr.so FAILED: lib_angle_unittests__library.cr.so lib_angle_unittests__library.cr.so.TOC lib.unstripped/lib_angle_unittests__library.cr.so python "../../build/toolchain/gcc_solink_wrapper.py" --readelf="../../third_party/android_ndk/toolch...(too long) ld.lld: error: undefined symbol: glCreateShader >>> referenced by shader_utils.cpp >>> angle_util_static/shader_utils.o:(CompileShader(unsigned int, char const*)) in archive obj/third_party/angle/libangle_util_static.a ld.lld: error: undefined symbol: glShaderSource Original change's description: > Reland "Add more test_utils functions." > > This is a reland of 5fcfcea4a9379633a83a67fc1d94938cb31f2a9c > > Re-land uses static linking with angle_util. The root cause > of the CFI error wasn't solved. Static linking works around > the problem by not using any export rules. > > Original change's description: > > Add more test_utils functions. > > > > Includes methods for creating temporary files, deleting files, and > > reading files into a string. Also renames GetPathSeparator to mention > > it's only used for environment variables. Includes a new virtual type > > angle::Process that will be used to implement cross-platform async > > Process launching for tests. Also includes a way to specify a custom > > crash handler callback. > > > > Also adds a few unit tests for the new functionality. They are disabled > > on Android because the functions are not needed by the new test runner. > > > > Bug: angleproject:3162 > > Change-Id: I3e2c2e9837608884c98379fa0f78c9ffbe158d73 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1821940 > > Commit-Queue: Jamie Madill <jmadill@chromium.org> > > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > > Bug: chromium:1015810 > Bug: angleproject:3162 > Change-Id: I6a2c1e7b585a13ca846759f32da0777c00d7f7e6 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869541 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> TBR=ynovikov@chromium.org,jonahr@google.com,jmadill@chromium.org Change-Id: I975b2214411906cb981bffa04fa50e0a65ff8b4e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1015810, angleproject:3162 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1870811 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7923e234 2019-10-09T10:26:25 Reland "Add more test_utils functions." This is a reland of 5fcfcea4a9379633a83a67fc1d94938cb31f2a9c Re-land uses static linking with angle_util. The root cause of the CFI error wasn't solved. Static linking works around the problem by not using any export rules. Original change's description: > Add more test_utils functions. > > Includes methods for creating temporary files, deleting files, and > reading files into a string. Also renames GetPathSeparator to mention > it's only used for environment variables. Includes a new virtual type > angle::Process that will be used to implement cross-platform async > Process launching for tests. Also includes a way to specify a custom > crash handler callback. > > Also adds a few unit tests for the new functionality. They are disabled > on Android because the functions are not needed by the new test runner. > > Bug: angleproject:3162 > Change-Id: I3e2c2e9837608884c98379fa0f78c9ffbe158d73 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1821940 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Bug: chromium:1015810 Bug: angleproject:3162 Change-Id: I6a2c1e7b585a13ca846759f32da0777c00d7f7e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869541 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Lan Wei 0cb09633 2019-10-18T15:50:10 Revert "Add more test_utils functions." This reverts commit 5fcfcea4a9379633a83a67fc1d94938cb31f2a9c. Reason for revert: 1 Test Suite(s) failed. angle_unittests failed because of: TestUtils.RunApp on Linux CFI https://ci.chromium.org/p/chromium/builders/ci/Linux%20CFI Original change's description: > Add more test_utils functions. > > Includes methods for creating temporary files, deleting files, and > reading files into a string. Also renames GetPathSeparator to mention > it's only used for environment variables. Includes a new virtual type > angle::Process that will be used to implement cross-platform async > Process launching for tests. Also includes a way to specify a custom > crash handler callback. > > Also adds a few unit tests for the new functionality. They are disabled > on Android because the functions are not needed by the new test runner. > > Bug: angleproject:3162 > Change-Id: I3e2c2e9837608884c98379fa0f78c9ffbe158d73 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1821940 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> TBR=ynovikov@chromium.org,jonahr@google.com,jmadill@chromium.org Change-Id: I1441bfbae31712f72b4aebeeea9cd711c3975a5d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3162 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869254 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5fcfcea4 2019-10-09T10:26:25 Add more test_utils functions. Includes methods for creating temporary files, deleting files, and reading files into a string. Also renames GetPathSeparator to mention it's only used for environment variables. Includes a new virtual type angle::Process that will be used to implement cross-platform async Process launching for tests. Also includes a way to specify a custom crash handler callback. Also adds a few unit tests for the new functionality. They are disabled on Android because the functions are not needed by the new test runner. Bug: angleproject:3162 Change-Id: I3e2c2e9837608884c98379fa0f78c9ffbe158d73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1821940 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill 1e3f2e0b 2019-10-07T14:11:34 Roll angle-internal with new GLES 1.0 fixes. The fixes require a few changes in ANGLE to support the build. Will upstream them to Khronos once its proved they can run the GLES 1.0 tests correctly. Bug: angleproject:3979 Change-Id: I74ff0cfa8ccc1bc903517a67d26352c4801e6355 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1845471 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1f08ab28 2019-10-03T16:22:52 Re-land "GN: Componentize vulkan back-end build." Re-land fixes angle_end2end_tests disabling Vulkan. This moves the build configuration into the Vulkan back-end dir. This should be a little easier to maintain as all Vulkan-related config is in one place. Note that this should not interfere with Skia's build as they do not import the Vulkan back-end sources. One additional possiblity that this enables is testing other compile-time permutations of the Vulkan back-end more easily. For example we could make a simple change to enable compile testing of the Vulkan back-end with custom command buffers disabled. Also fixes a few errors affecting less tested configs. Bug: angleproject:3943 Change-Id: I0161668abcc58fcf529dde120998d4b99445fdd5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1838454 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2328d65a 2019-10-03T02:27:07 Revert "GN: Componentize vulkan back-end build." This reverts commit d46e2fb1e341a7ba7da56072658d3b4b1a540077. Reason for revert: Broke Vulkan angle_end2end_tests. Bug: angleproject:3954 Original change's description: > GN: Componentize vulkan back-end build. > > This moves the build configuration into the Vulkan back-end dir. > This should be a little easier to maintain as all Vulkan-related > config is in one place. > > Note that this should not interfere with Skia's build as they do > not import the Vulkan back-end sources. > > One additional possiblity that this enables is testing other > compile-time permutations of the Vulkan back-end more easily. For > example we could make a simple change to enable compile testing > of the Vulkan back-end with custom command buffers disabled. > > Also fixes a few errors affecting less tested configs. > > Bug: angleproject:3943 > Change-Id: Iaf819936896e4f5d3e6415ed16ab0c940e46cdb6 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1829662 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Tobin Ehlis <tobine@google.com> TBR=tobine@google.com,jonahr@google.com,jmadill@chromium.org Change-Id: I7cf3db4f6b7d8b779625ea2491172bb429b498a9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3943 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1837233 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill d46e2fb1 2019-09-27T16:22:35 GN: Componentize vulkan back-end build. This moves the build configuration into the Vulkan back-end dir. This should be a little easier to maintain as all Vulkan-related config is in one place. Note that this should not interfere with Skia's build as they do not import the Vulkan back-end sources. One additional possiblity that this enables is testing other compile-time permutations of the Vulkan back-end more easily. For example we could make a simple change to enable compile testing of the Vulkan back-end with custom command buffers disabled. Also fixes a few errors affecting less tested configs. Bug: angleproject:3943 Change-Id: Iaf819936896e4f5d3e6415ed16ab0c940e46cdb6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1829662 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Jamie Madill ba04be8c 2019-09-24T08:55:34 GN: Refactor angle_test and remove angle_test_main. This cleans up the GN files and prepares them for eventually using a custom test harness. Bug: anglerproject:3162 Change-Id: I3d8568628a9465093adec9e838617a002192beef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1821939 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill ee891ce3 2019-09-23T10:21:21 Disable non-portable include path warning. A prior CL did not apply the warning disable to the right targets. Bug: chromium:995046 Change-Id: If06b8493d2c1ce3026dfbb1d32a9746e1fd0cddf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1815909 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Nico Weber 52cc70fa 2019-08-26T13:58:53 Try to list files instead of directory in isolate for gl_cts data. Bug: angleproject:3827 Change-Id: I65ed81886dce185bfc7542c321f43cc9bde6ef92 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1771979 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill ddbc8e44 2019-08-17T15:59:08 Suppress nonportable include path warning. Might be related to Goma and C files on Windows. Bug: chromium:995046 Change-Id: If80168356a1e2a60abe8dfbf89aeed7298fd0a54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1758998 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Li, Hao e9cffa62 2019-07-16T16:32:40 Rename data_dir to angle_data_dir in GN files Dawn reuses the Vulkan validation layers of ANGLE to avoid building twice in chromium, and references build_overrides/vulkan_common.gni, but angle_data_dir is undefined, which is defined as data_dir in angle.gni. There is a reminder to rename this name in https://chromium-review.googlesource.com/c/chromium/src/+/1610488 Bug: angleproject:3710 Change-Id: I4b7c4d24c37770ff58b70c988851a6ed32a04296 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1703175 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 524a8c90 2019-07-04T13:29:23 Fix header check for GLES 1.0 conformance tests. The no_gtest target wasn't sharing its header visiblity with the main target. Fix this using public_deps. Also rolls angle-internal to pick up MSVC build fixes. Bug: angleproject:3654 Change-Id: I4aca1f167031c0b41d1a7f7ff4d7303a960e2839 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688500 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jordan Bayles b5a13bec 2019-06-28T14:11:17 Prepare for JsonCpp roll in Chromium This patch is the first of a multistep process to upgrade JsonCpp from its current legacy version to the latest version. A minor fix to how Json::Value is used is included, as well as properly pulling in the jsoncpp_config where jsoncpp is used, allowing for us to roll Chromium while Angle uses the deprecated Reader/Writer classes. After this patch is landed, the Angle dependency in Chromium can be rolled as part of rolling JsonCpp, then Angle can update to the new StreamWriter/CharReader classes. Bug: 961513 Change-Id: Idd1d61270aa0a7e4a91983b4c22a24e2fdaafe49 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1682815 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4237e53e 2019-06-28T11:14:31 Pull angle-internal for internal ANGLE devs. These internal repos can hold confidential code. Also updates the GLES 1.0 conformance test configuration to pull data from angle-internal. Bug: angleproject:3621 Change-Id: Ifb9d2a5014b0827a078cfdc85fb20c5f5335204f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1679992 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 77c8496b 2019-06-28T11:24:27 Re-land "Cleanup angle_libs_suffix in BUILD.gn." We can use output_name instead of repeating the libs suffix in the GN files. The re-land adds automatic suffix application on Android. This makes the configuration a bit simpler and should detect future breakage. Also cleans up some of the "angle_libraries" code. Bug: angleproject:3611 Change-Id: I4971d1085ca67802c916655c30efb7df4001f040 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1679993 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3e6e70bb 2019-06-28T14:45:49 Revert "Cleanup angle_libs_suffix in BUILD.gn." This reverts commit 625f5b2fbd89eb04b2e24853502acadbd40f1f73. Reason for revert: Seems to break the Android build with suffix: ~/chromium/src$ gn args out/Release64 Waiting for editor on "/usr/local/google/home/cnorthrop/chromium/src/out/Release64/args.gn"... Generating files... ERROR Unresolved dependencies. //third_party/angle:compressed_symbols(//build/toolchain/android:android_clang_arm) needs //third_party/angle:libEGL_angle(//build/toolchain/android:android_clang_arm) //third_party/angle:compressed_symbols(//build/toolchain/android:android_clang_arm) needs //third_party/angle:libGLESv1_CM_angle(//build/toolchain/android:android_clang_arm) <snip> Original change's description: > Cleanup angle_libs_suffix in BUILD.gn. > > We can use output_name instead of repeating the libs suffix in the GN > files. > > Bug: angleproject:3611 > Change-Id: Ic87c1378aac8be8e1aec695ddbe5c8ec2ed3187b > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1678403 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Tim Van Patten <timvp@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> TBR=geofflang@chromium.org,timvp@google.com,jmadill@chromium.org Change-Id: I532d9cf28c21ddf65d820d3fc323c87dbc844d96 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3611 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1679990 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 625f5b2f 2019-06-26T16:19:35 Cleanup angle_libs_suffix in BUILD.gn. We can use output_name instead of repeating the libs suffix in the GN files. Bug: angleproject:3611 Change-Id: Ic87c1378aac8be8e1aec695ddbe5c8ec2ed3187b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1678403 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi f0ea83a4 2019-06-26T10:17:26 Vulkan: Initial support for ES3.1 Bug: angleproject:3520 Bug: angleproject:3521 Change-Id: I49d67cae0bba3e147c7a83c10e09fe1ee5ff0824 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1678400 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis f52f2637 2019-05-23T13:52:52 Add EGL_ANGLE_workaround_control extension. This extension is used to query strings from an array based on index, which will be used to query all the information about workarounds in ANGLE. Bug: angleproject:1621 Change-Id: I27157f278f7f17c92c8b4fd7753e2a5ecd0528f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1627723 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3f3a05d4 2019-05-27T09:08:46 Fix KHR dEQP test data dir. Had an extra "gl_cts" appended. Bug: angleproject:3353 Change-Id: I962cd0196b898e5fdd631790d88bfb1d478d16b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1630292 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7a026133 2019-05-20T10:34:08 Fix Android data dir for KHR dEQP tests. Also includes a fix for case list paths on developer machines. Also includes a test expectation update for GLES2. Bug: angleproject:3353 Change-Id: Idb01eb8d806067739253a6676a6d2d8ee1199929 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1616853 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill cafd7736 2019-05-17T09:33:41 Fix KHR-GLES dEQP test paths. Our GN was using the incorrect path for the new test sets. This was showing up as an isolate_tests failure when running the new tests. Also fixes incorrect search paths for the case list directory when used in a Chromium checkout. And adds a few other missing data dependencies. Bug: angleproject:3353 Change-Id: I602db1e5debdad88b6eace76416fc2c10c059f8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1616021 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill aefbea29 2019-05-16T13:33:27 Fix Clang warning in dEQP-KHR tests. Due to complex and slow process of upstreaming it's easier to disable this warning than to fix it upstream. Only happens in a Chromium build because Chromium uses a specialized standard library. Bug: angleproject:3353 Change-Id: I01607a00e469110c87458458d3b205fd59ea3db3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1614426 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill cfffc138 2019-05-16T11:35:01 Add KHR-GLES dEQP tests. This reorganizes the dEQP build targets to allow for better reuse with the new KHR test set. It also adds a single new test target called "angle_deqp_khr_tests" that houses all the new test sets. The new test targets can be compiled now but cannot yet be executed. That new functionality will follow in a subsequent CL. Along with test expectations and integration. Uses a new template type in the build to conslidate GN customization. Adds the GLES 2.0 and 3.0 tests for now. We can follow up with additional work for the GLES 3.1+ tests. Also adds test expectations. Bug: angleproject:3353 Change-Id: Ib0673e97f679c8aa46e27dfa616845a2014a75fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1604070 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill af6a51e0 2019-05-15T15:08:00 dEQP: Make deqp_path GN variable public. This allows us to reuse it in our other BUILD.gn files. Bug: angleproject:3353 Change-Id: Ic88f7781010d7319dfe3bb8f2f942fa08d37e4dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1614097 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 32a1b0f7 2019-05-15T15:00:20 Update dEQP build config to use GN templates. Templates make it easier to override parts of test configs. Instead of if statements we can use forwarded variables to override specific settings. This refactor makes it easier to integrate the "KHR" tests. Bug: angleproject:3353 Change-Id: Ia6e9c6d01864e5253db5d28dc087bf954aee226c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1612297 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill cc5199af 2019-05-13T09:44:40 Roll dEQP (May 2019) Removes the EGL 1.5 overrides now that they are upstreamed. Bug: angleproject:3446 Change-Id: I4b17354518534ea821bba83a4b1e00f83f80ac37 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1605786 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 66e4850d 2019-04-25T10:49:05 Use EnumAdapters to properly detect primary GPU on Win EnumDisplayDevicesA returns the card that's connected to the display, but EnumAdapters return the adapter which the desktop primary is displayed at index 0. We can use this to determine the device used for graphics. Also cleans up the discrepancy between platforms on finding "primary" vs "active" GPU. Asserts that the GPU expected to run ANGLE commands is the active GPU, and deprecates the primary GPU to be equal to the active GPU. Bug: angleproject:3383 Change-Id: I422fba1bbe47d85b7c09e378d559eaebf89e2625 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1584360 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Michael Spang 3b2c6bfd 2019-04-16T17:19:50 Vulkan: Implement glImportMemoryFdEXT Allow importing opaque file descriptors into memory objects on linux. Currently this just holds onto the file descriptor rather than calling vkAllocateMemory immediately. The latter will be easier once we have support for suballocation (anglebug.com/2162). Bug: angleproject:3289 Change-Id: Ia80ce07b2a9ec95b9063feb9bfeb24ffe77fa40e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1552028 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jonah Ryan-Davis 34cbc544 2019-04-05T11:30:10 Use ANGLE's gpu_info_util libraries for test expectations 3. Remove gpu_info.h and gpu_info.cc and use ANGLE's own gpu_info_util to to gather device info instead. - Support collecting info for and parsing expectations of specific Android devices such as Nexus 5X and Pixel 2. - Change parser behavior to more closely follow: bit.ly/chromium-test-list-format Bug: angleproject:2677 Change-Id: I4c0b9342142b718e884484a6bcaac2dff3ac575a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1553822 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 0449a902 2019-03-22T16:03:54 Move gpu_test_expectations from third_party into ANGLE. 1. Copy the code from src/tests/third_party/gpu_test_expectations to src/test/test_expectations, rename .cc files to .cpp. Put these in a new static library and update dEQP to link against it in src/tests/BUILD.gn. 2. Merge the code in angle_config.h into the rest of the expectations parser, this code was added so that the rest of the parser would compile in ANGLE's tree with minimal modification. Still need to follow up with the third step to close the issue. Bug: angleproject:2677 Change-Id: Icf09b4eeed83a6d09b1964ad2adcfa85cabb4b63 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1536312 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 4ae2c12f 2019-03-23T18:07:26 Use Khronos master lists for dEQP tests. There are an number of valid tests that are excluded from the Android test lists. Likely some older and low spec devices weren't passing these tests and for historical reasons they were omitted from the Android CTS. ANGLE however needs to pass these tests to be conformant and up until now we weren't testing them on our bots. The EGL tests still use the same Android version of the test list. It seems the Khronos version just lists wildcards. ANGLE needs an explicit test list. Bug: angleproject:3242 Change-Id: Ie0aa2aa94689be0a40e7cc39e05f0042c3f03f5d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1520986 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tom Tan 094c40dc 2019-03-13T18:08:08 Don't build glmark2_wgl on Windows ARM64 due to missing opengl32.lib Opengl32.lib/opengl32.dll are not available on Windows ARM64. Disable building glmard2_wgl which depends them. Bug: chromium:941621 Change-Id: Iddae231764c6135ef1a74c294da1393f0fe51eeb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1522353 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi f576a708 2019-02-04T16:52:12 Add glmark2 to angle_perftests Bug: angleproject:3125 Change-Id: I9242743c6b5c6e18d0a23ff853ef6b9b370865a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1452956 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 55959b0b 2019-03-05T10:07:41 Add glmark2 to build. glmark2 is a an OpenGL ES 2.0 benchmark licensed under GPL v3. See https://github.com/glmark2/glmark2 ANGLE can use glmark2 as a metric and guide for optimization. It will add a number of useful performance tests. This CL adds the initial build integration. A follow-up CL will integrate glmark2 into our performance tests. Note that glmark2 will not be shipped with Chrome or Android. It will only be used on our test infrastructure. Note that the data path solution is temporary. When integrated into ANGLE we will make sure we CWD into the glmark2 directory before running the benchmark. Bug: angleproject:3139 Change-Id: I5c4f605221c255ab19abd10b321b5867ab459105 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1449984 Commit-Queue: Jamie Madill <jmadill@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi a9f89313 2019-02-25T16:31:57 Reland "Add system util to execute app and retrieve its output" This reverts commit fe14b2e503a5991aeb033836bb4d525508475b52. Reason for revert: failing test is reworked not to run angle_unittests itself, but another binary. Previously, this test was calling angle_unittests itself, but with a different target. On the bots, that was in turn calling angle_unittests with even more arguments, including the addition of a log file location. Under some configurations, this separate process was thus trying to access files that were already opened by the parent process, leading to a test failure. In this CL, a new helper executable is created for the sake of this unittest. > Revert "Add system util to execute app and retrieve its output" > > This reverts commit c63d95525cde8d28963148bb5894456c1d39018d. > > Reason for revert: Test fails on Win7 > > Original change's description: > > Add system util to execute app and retrieve its output > > > > This will be useful to run external applications, such as benchmarks, > > and process their output. > > > > Bug: angleproject:3125 > > Change-Id: Ic13c69f2e034f4b47498fb2f299c62423c355c4a > > Reviewed-on: https://chromium-review.googlesource.com/c/1452534 > > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > > Reviewed-by: Jamie Madill <jmadill@google.com> Bug: angleproject:3125, angleproject:3168 Change-Id: I74815750484a79f33c36e0b4f941d4dd98f99aa5 Reviewed-on: https://chromium-review.googlesource.com/c/1487631 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill cf9b2853 2019-02-13T09:15:26 Roll Google Test. Updates our build files to be more consistent with Chromium. Also rolls SPIRV-Tools to use newer test fixture syntax. Note: requires an update to SPIRV-Tools to pass 'gn check'. Bug: angleproject:3151 Change-Id: I8abddef396f84e5c58cdd185421f03fd6e2b6d58 Reviewed-on: https://chromium-review.googlesource.com/c/1470591 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@google.com>
Michael Spang 229fc83d 2019-01-21T18:09:15 Vulkan: Port renderer to Fuchsia (reland) Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan renderer, as well as an implementation of OSWindow that renders fullscreen for the test suite. Disallow use of the vulkan loader from third_party as Fuchsia uses a fork of the loader and has not sent those changes upstream yet. Add a small wayland-inspired library libfuchsia-egl to provide a type "struct fuchsia_egl_window" to use as EGLNativeWindowType. This type combines a zx_handle_t to an image pipe channel and a surface size. Image pipes can only be used once to create a VkSurfaceKHR. This means we have to recreate the pipe in tests that call eglCreateWindowSurface more than once with a single OSWindow, or the second call will fail. Add a resetNativeWindow() method to accomplish this. Reland disabling -Wextra-semi. BUG=angleproject:2475 TEST=angle_end2end_tests on Fuchsia Change-Id: Ie91715bcd760c6c04d4b8a02a91daa71e32ee30c Reviewed-on: https://chromium-review.googlesource.com/c/1467603 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3f0ff409 2019-02-12T03:08:51 Revert "Vulkan: Port renderer to Fuchsia" This reverts commit 991d1cfb5e5a2f20a46961da3ad85b95da30b88a. Reason for revert: Failing compile on the fuchsia bots on the ANGLE auto-roller. https://ci.chromium.org/p/chromium/builders/luci.chromium.try/fuchsia_x64/209198 In file included from ../../third_party/angle/util/fuchsia/ScenicWindow.cpp:10: In file included from ../../third_party/angle/util/fuchsia/ScenicWindow.h:13: In file included from gen/third_party/fuchsia-sdk/sdk/fidl/fuchsia/ui/policy/cpp/fidl.h:5: In file included from ../../third_party/fuchsia-sdk/sdk/pkg/fidl_cpp/include/lib/fidl/cpp/internal/header.h:12: ../../third_party/fuchsia-sdk/sdk/pkg/fit/include/lib/fit/function.h:135:6: error: extra ';' after member function definition [-Werror,-Wextra-semi] }; ^ 1 error generated. Original change's description: > Vulkan: Port renderer to Fuchsia > > Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan > renderer, as well as an implementation of OSWindow that renders > fullscreen for the test suite. > > Disallow use of the vulkan loader from third_party as Fuchsia uses a fork > of the loader and has not sent those changes upstream yet. > > Add a small wayland-inspired library libfuchsia-egl to provide a type > "struct fuchsia_egl_window" to use as EGLNativeWindowType. This type > combines a zx_handle_t to an image pipe channel and a surface size. > > Image pipes can only be used once to create a VkSurfaceKHR. This means we > have to recreate the pipe in tests that call eglCreateWindowSurface more > than once with a single OSWindow, or the second call will fail. Add a > resetNativeWindow() method to accomplish this. > > BUG=angleproject:2475 > TEST=angle_end2end_tests on Fuchsia > > Change-Id: I71a613a362dd1c8aada49a3c02ae461e064457bf > Reviewed-on: https://chromium-review.googlesource.com/c/1446496 > Commit-Queue: Michael Spang <spang@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org,syoussefi@chromium.org Change-Id: I2d9abefa9db5363ba63a17c1773d0e147040d055 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:2475 Reviewed-on: https://chromium-review.googlesource.com/c/1465761 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Michael Spang 991d1cfb 2019-01-21T18:09:15 Vulkan: Port renderer to Fuchsia Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan renderer, as well as an implementation of OSWindow that renders fullscreen for the test suite. Disallow use of the vulkan loader from third_party as Fuchsia uses a fork of the loader and has not sent those changes upstream yet. Add a small wayland-inspired library libfuchsia-egl to provide a type "struct fuchsia_egl_window" to use as EGLNativeWindowType. This type combines a zx_handle_t to an image pipe channel and a surface size. Image pipes can only be used once to create a VkSurfaceKHR. This means we have to recreate the pipe in tests that call eglCreateWindowSurface more than once with a single OSWindow, or the second call will fail. Add a resetNativeWindow() method to accomplish this. BUG=angleproject:2475 TEST=angle_end2end_tests on Fuchsia Change-Id: I71a613a362dd1c8aada49a3c02ae461e064457bf Reviewed-on: https://chromium-review.googlesource.com/c/1446496 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill cd4f1fba 2019-02-07T15:26:10 Fix gtest main from including the wrong headers. We would accidentally propagate include directories to the test main target. This would show up as compile errors of the form: In file included from ../../third_party/angle/testing/gtest/include/gtest/gtest.h:10: ../../third_party/angle/third_party/googletest/src/googletest/include/gtest/gtest.h:303:22: error: no member named 'ImplicitlyConvertible' in namespace 'testing::internal' !internal::ImplicitlyConvertible<T, AssertionResult>::value>::type* ~~~~~~~~~~^ This fixes the GN properties such that we no longer get the wrong /testing/ and /third_party/googletest/ directories included. This regressed when glslang was rolled. Bug: angleproject:3088 Change-Id: I710f767cfe476454c10dacf2103b9203f1b5ee19 Reviewed-on: https://chromium-review.googlesource.com/c/1459596 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7085305f 2019-02-04T17:47:04 Use whitelist to filter test configs. Before we would try all the configs and filter those which fail to init. Now we gather the System Info and if successful check a list of supported configs. If System Info init fails we fall back to the prior method. This speeds up end2end tests init. It also allows for more reliable profile captures with VTune. It also will cause a test failure if a config unexpectedly fails. Previously we would silently pass without running the config's test. Includes a few changes: * D3D reference tests are disabled. They don't appear to be working. * Mac ES 3.1 is disabled due to lack of support. * WGL on AMD Windows is disabled due to lack of ES compatibility. * ES 3.2 contexts are explicitly disabled. * Vulkan is limited to ES 2.0. * The Windows GLES back-end is limited to NVIDIA with ES 2.0 & 3.0. * A unit test that verifies the whitelist matches availability. Bug: angleproject:2472 Change-Id: Ib72214bfbbff13c124fa15a6494d0aabb52f2e62 Reviewed-on: https://chromium-review.googlesource.com/c/1436168 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill c09ae15c 2019-02-01T14:16:32 Enable -Wextra-semi and -Wextra-semi-stmt. This will prevent users from accidentally making semicolon errors in the future. Bug: chromium:926235 Change-Id: I79a6fa376fb1ad8f0fcf1b65b1f572a035d1f4e9 Reviewed-on: https://chromium-review.googlesource.com/c/1446493 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 0cb3b0f1 2019-01-28T09:55:20 Vulkan: Use glslang's internal BUILD.gn. This retires the ANGLE BUILD.gn file for glslang. Also makes a few more repos sync from Chromium's copy using build overrides. This should speed up Chrome checkouts slightly. Bug: angleproject:3088 Change-Id: I530f28d9b13469bbe6471a4c61e7353d599d81ec Reviewed-on: https://chromium-review.googlesource.com/c/1422545 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7098cff5 2019-01-15T18:33:42 Make BUILD.gn targets into templates. This allows us to "globally" add and remove certain configs as long as we use the new templates. This simplifies the logic of adding configs for stuff like extra warnings and default include dirs. As well it simplifies removing certain common unwanted configs. Generally simplifies the logic in BUILD.gn. Will allow for easily suppressing the clang-plugins config instead of using a global setting in .gn. Then we can enable the additional warnings config-by-config. Also fixes some warnings that turned up after we enabled the extra warnings config in our tests. Also moves the dEQP tests main to be consistent with the other test main files. Bug: angleproject:3069 Change-Id: I5a8166cd0f5a7926822c171fcaf473fc86b3ffc1 Reviewed-on: https://chromium-review.googlesource.com/c/1409871 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Thomas Anderson fc99468d 2019-01-14T23:46:59 Revert "Fix Android ASAN tests when is_component_build=false" This reverts commit e4a52cb53f877637ffb17677396d02d9f8a907a4. Reason for revert: No longer necessary after https://chromium-review.googlesource.com/c/chromium/src/+/1409558 Original change's description: > Fix Android ASAN tests when is_component_build=false > > Context in Chromium CL: > https://chromium-review.googlesource.com/c/chromium/src/+/1405277/ > > This CL must be landed first. > > BUG=chromium:916973 > R=​thakis,cwallez,fjhenigman,geofflang,jmadill,ynovikov > > Change-Id: Icde4ec98c9031a262e0dfafa5cfe2a702c4c4e3e > Reviewed-on: https://chromium-review.googlesource.com/c/1405908 > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Reviewed-by: Nico Weber <thakis@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> TBR=thakis@chromium.org,ynovikov@chromium.org,fjhenigman@google.com,geofflang@chromium.org,jmadill@chromium.org,cwallez@google.com,thomasanderson@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:916973 Change-Id: Ie9609db8e5d5f71acdc22d839b94f3e843bfe3ca Reviewed-on: https://chromium-review.googlesource.com/c/1410282 Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org>
Tom Anderson e4a52cb5 2019-01-10T11:02:50 Fix Android ASAN tests when is_component_build=false Context in Chromium CL: https://chromium-review.googlesource.com/c/chromium/src/+/1405277/ This CL must be landed first. BUG=chromium:916973 R=thakis,cwallez,fjhenigman,geofflang,jmadill,ynovikov Change-Id: Icde4ec98c9031a262e0dfafa5cfe2a702c4c4e3e Reviewed-on: https://chromium-review.googlesource.com/c/1405908 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill ba319ba3 2018-12-29T10:29:33 Re-land "Load entry points dynamically in tests and samples." Fixes the Android/ChromeOS/Fuchsia builds by using consistent EGL headers. This CL adds a dynamic loader generator based on XML files. It also refactors the entry point generation script to move the XML parsing into a helper class. Additionally this includes a new GLES 1.0 base header. The new header allows for function pointer types and hiding prototypes. All tests and samples now load ANGLE dynamically. In the future this will be extended to load entry points from the driver directly when possible. This will allow us to perform more accurate A/B testing. The new build configuration leads to some tests having more warnings applied. The CL includes fixes for the new warnings. Bug: angleproject:2995 Change-Id: I5a8772f41a0f89570b3736b785f44b7de1539b57 Reviewed-on: https://chromium-review.googlesource.com/c/1392382 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 9f088621 2018-12-29T20:46:15 Revert "Load entry points dynamically in tests and samples." This reverts commit 03923558a7103827ffec6a4d2a1453ed91f01c6f. Reason for revert: fails compilation on Android, ChromeOS and Fuchsia during roll https://chromium-review.googlesource.com/c/chromium/src/+/1392624 Original change's description: > Load entry points dynamically in tests and samples. > > This CL adds a dynamic loader generator based on XML files. It also > refactors the entry point generation script to move the XML parsing > into a helper class. > > Additionally this includes a new GLES 1.0 base header. The new > header allows for function pointer types and hiding prototypes. > > All tests and samples now load ANGLE dynamically. In the future this > will be extended to load entry points from the driver directly when > possible. This will allow us to perform more accurate A/B testing. > > The new build configuration leads to some tests having more warnings > applied. The CL includes fixes for the new warnings. > > Bug: angleproject:2995 > Change-Id: I6726d4163f7a6e54d2482f094c0a952f59702a05 > Reviewed-on: https://chromium-review.googlesource.com/c/1359516 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> TBR=ynovikov@chromium.org,jmadill@chromium.org,syoussefi@chromium.org Change-Id: I902bec2d733c2b879be29c02ab52a0b7d4eaa077 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:2995 Reviewed-on: https://chromium-review.googlesource.com/c/1392381 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 03923558 2018-12-29T10:29:33 Load entry points dynamically in tests and samples. This CL adds a dynamic loader generator based on XML files. It also refactors the entry point generation script to move the XML parsing into a helper class. Additionally this includes a new GLES 1.0 base header. The new header allows for function pointer types and hiding prototypes. All tests and samples now load ANGLE dynamically. In the future this will be extended to load entry points from the driver directly when possible. This will allow us to perform more accurate A/B testing. The new build configuration leads to some tests having more warnings applied. The CL includes fixes for the new warnings. Bug: angleproject:2995 Change-Id: I6726d4163f7a6e54d2482f094c0a952f59702a05 Reviewed-on: https://chromium-review.googlesource.com/c/1359516 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>