Граф коммитов

104 Коммитов

Автор SHA1 Сообщение Дата
Etienne Bergeron 75b59e7dc4 Enable the use of chromium worker pool
This CL is a revert of:
  https://chromium-review.googlesource.com/c/chromium/src/+/2276245

The issue with CFI was fixed here:
  https://chromium-review.googlesource.com/c/chromium/src/+/2276245

Bug: chromium:1091259
Change-Id: I601112b106e63a96144191263ac6a867d77154d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2277099
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-07-07 16:32:55 +00:00
Dirk Pranke 465a912582 Remove old reference to run_gtest_angle_test.py.
We should've removed this in https://crrev.com/c/2280255; by
leaving it in, the chromium build still tries to include it
when building fuchsia packages, even though it isn't needed.

TBR=jmadill@chromium.org
Bug: angleproject:3162
Change-Id: I6314a88e276b4459534344d500345ccf5de2b649
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2281553
Reviewed-by: Dirk Pranke <dpranke@google.com>
Commit-Queue: Dirk Pranke <dpranke@google.com>
2020-07-04 20:56:48 +00:00
Dirk Pranke a86c8547cb Add missing data deps to angle test executables.
Currently the Chromium build defines some wrapper test
targets for ANGLE (//chrome/test:angle_perftests
and //chrome/test:standalone_angle_unittests) that seem to
exist only to specify some extra data dependencies. By moving
those data dependencies into angle, this removes a couple of
targets in Chromium that are otherwise problematic for
my planned changes for crbug.com/816629.

Bug: chromium:816629
Change-Id: Ic0d50132f102f39749c92b062eec38a529db2c1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280255
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@google.com>
2020-07-02 23:53:30 +00:00
Etienne Bergeron 2761f01d68 Disable the use of chromium worker threads
The use of worker thread is chromium is triggering CFI error.

This CL disables the use of chromium worker pool to avoid
blocking the roll-deps:
  https://chromium.googlesource.com/angle/
      angle.git/+log/1be395fe1250..a935c65a0488

The intend is to avoid the effects of the fix from that CL:
  https://chromium-review.googlesource.com/c/angle/angle/+/2262573
Instead of reverting the CL (with is an obvious mistake) we disable
the feature.

Bug: chromium:1091259
Change-Id: I4e473ec42be2a82e47e2e4c882f75ba33bcd9476
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2275730
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
2020-06-30 21:58:15 +00:00
Jamie Madill 4f2fb80b50 Tests: Add scripts/common.py to standalone data.
This file is needed by the bots to run as an isolated script.

Bug: angleproject:3162
Change-Id: I1bb87b3622613334b379896a3c124a6007676346
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2275729
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-06-30 16:11:19 +00:00
Etienne Bergeron 9e83c15193 Active the delegate worker pool for chromium (3/3)
This CL is activating the delegate WorkerPool in Chromium.

Must land after:
  https://chromium-review.googlesource.com/c/angle/angle/+/2231708

Related CLs:
1) https://chromium-review.googlesource.com/c/angle/angle/+/2231708
2) https://chromium-review.googlesource.com/c/chromium/src/+/2231864
3) [this CL]

Bug: chromium:1091259
Change-Id: I62c7175fec2846fee014702d8561eeaf48ca93de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2231710
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-06-17 18:22:21 +00:00
Jamie Madill e2d64532b8 Tests: Add missing Android build arg.
A certain config was hiding ANativeActivity_onCreate from the loader
which in turn was preventing the tests from running on Android.

Bug: angleproject:3162
Change-Id: Ia9f7b1042764b4ae5d347f603b7fec962ffce89a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246305
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-06-16 01:48:17 +00:00
Jamie Madill 86a45a1aba Remove missing script from angle.gni test config.
Was from a subsequent CL. For some reason this was only picked up
on the ANGLE roll into Chrome.

Bug: angleproject:3162
Change-Id: I6c9d4ab3843bd5a58a6695b79648b57343689c4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2236759
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-06-09 16:44:39 +00:00
Jamie Madill 8e2b4fefb6 Build both standalone and Chromium gTest targets.
This will let us pick the standalone test version when trying out
the new test runner.

GN-only change.

Bug: angleproject:3162
Change-Id: I08c75c7a38aaf63c5a25cc8623eb05615cc29abb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2229068
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2020-06-08 19:40:06 +00:00
Jonah Ryan-Davis 3cb9c4bee9 Statically link vulkan-loader on Mac
Disable angle_shared_libvulkan on Mac since we are the only client.
Re-add codepaths to support this.

Bug: angleproject:4477
Change-Id: Ie128c83adaae741636541bbfd6105d160d874a8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2102954
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
2020-04-24 19:52:39 +00:00
Tobin Ehlis 12c0e765ee Add GN arg to extract native libs in APK
Added GN bool arg "angle_extract_native_libs."
When "false," which is the default, the native libs are zipped in the ANGLE
apk. When true, the libs will be extracted which is useful when capturing
flame graphs in order to see the ANGLE function names in your flamegraph.

Bug: angleproject:4304
Change-Id: I86c91e5028688142b1137b859c800f2243c124d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2028524
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2020-01-29 23:40:07 +00:00
Tibor Dusnoki d5d8ffa85e Disable ANGLE GL and Vulkan on Windows on ARM
Currently Windows on ARM doesn't support OpenGL but it is enabled in ANGLE by default.
Vulkan is only supported via Swiftshader so we should not test native Vulkan.
Therefore it causes crashes and fails on Windows on ARM when running angle_end2end_tests.

Bug: angleproject:4318
Change-Id: I70349ed53a2248df2dc8e7a0c0b3a6a5537a1110
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2007414
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2020-01-24 21:39:02 +00:00
Jamie Madill 5407aaa089 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>
2019-12-16 23:52:35 +00:00
Jamie Madill 9190f49cff 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>
2019-12-16 22:35:05 +00:00
Tobin Ehlis 5fd73782c5 Vulkan: Use volk to load vk* func ptrs
Thanks to Jamie Madill for some fixes to get all CI test passing w/ volk.

This change updates all ANGLE targets that use Vulkan to dyanmically
link all of the VK entrypoints using the volk OSS library from
https://github.com/zeux/volk.

It's only two source files so baking them directly into ANGLE repo.
Also it's used in both the tests and libANGLE trees so added to
src/common/third_party/volk dir.

Updated volk and the renderer to track latest instance and device
that were loaded and renderer will refresh vk* function pointers if
the current and previous device and/or instance don't match. This
prevents errors in the test framework as we transition between
backends, especially between VK HW & SwiftShader ICDs.

This change rolls the Vulkan Loader forward to use the latest loader
version which no longer allows static linking but requires dynamic
linking.

Bug: angleproject:3740
Bug: angleproject:4092
Bug: angleproject:4162
Bug: angleproject:4210
Bug: angleproject:4225
Change-Id: I8a0b7d24c9545bbfdfaa4b9357a9bfe6793e0140
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965640
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-12-16 20:08:39 +00:00
Jamie Madill b92ec2443f Revert "Re-land "Add new test runner harness.""
This reverts commit e20560faf1.

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>
2019-12-06 15:09:04 +00:00
Jamie Madill e20560faf1 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>
2019-12-05 20:08:07 +00:00
Jamie Madill 8f31872c85 Revert "Add new test runner harness."
This reverts commit fb40d231c3.

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>
2019-12-03 18:35:07 +00:00
Jamie Madill fb40d231c3 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>
2019-12-02 23:01:53 +00:00
Jonah Ryan-Davis 5afd5ec6ad 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>
2019-11-28 17:41:50 +00:00
Shahbaz Youssefi b0a9de9512 Fix assert in angle_deqp_khr_gles* executables
The //build/config/gcc:symbol_visibility_hidden config was removed in an
attempt to improve stack traces on Linux. However, this resulted in the
in-class-inline-functions in glslang to be weak symbols.  The KHR dEQP
tests link against glslang as well as libGLESv2.so, resulting in
angle_deqp_khr_gles*_tests to link those weak symbols.  Due to glslang's
usage of a global variable in InitializeDll.cpp, a bug is created where
ANGLE sometimes calls into its own copy of glslang and sometimes the KHR
dEQP's version, with the two copies of the global variable being
inconsistent.

Bug: angleproject:4123
Change-Id: I0cfe3236117b1219db4fea4495e1583334c04fbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1926887
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2019-11-21 16:29:30 +00:00
Ethan Lee d22b8be4b4 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>
2019-11-19 13:02:24 +00:00
Geoff Lang 6e687af264 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>
2019-11-14 14:54:36 +00:00
Jamie Madill c898ec1a5e Add EGL GGP extensions.
This CL adds two new extensions:

 * EGL_ANGLE_ggp_stream_descriptor:
    Introduces a new attribute to CreateWindowSurface. Allows the app
    to pass in a stream descriptor to VkCreateSurfaceKHR.
    Mirrors VK_GGP_stream_descriptor_surface.

 * EGL_ANGLE_swap_with_frame_token:
    Introduces a new function 'eglSwapBuffersWithFrameTokenANGLE'. This
    allows the app to pass a GGP frame token down to vkQueuePresentKHR.
    Mirrors VK_GGP_frame_token.

Bug: angleproject:4078
Change-Id: I4313ac4c264e68999905049f661bc64b44f72fab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1897315
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2019-11-05 01:50:17 +00:00
Jamie Madill a9f11bf14b 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>
2019-10-23 05:38:12 +00:00
Jamie Madill ed6e230ec6 Vulkan: Re-enable release ASSERTs.
This change will broadcast the release asserts config to all ANGLE
targets. Instead of the ones that inherited from angle_common.

Bug: angleproject:4021
Change-Id: I574b01d47e85004f69fb59856cac7b10f0d8d170
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1864726
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-17 01:22:35 +00:00
Le Quyen d200a77a22 Metal backend skeleton implementation.
Bug: angleproject:2634
Change-Id: I34be82f4a80a6851fecb53a51e069b134d82613a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1849079
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-10-10 17:27:38 +00:00
Jamie Madill 1ba72546da GN: Allow building without /build/ folder.
This will allow for ANGLE to be used in the Skia build.

Bug: angleproject:3943
Change-Id: Idd1840f4445c63e696a7cdcd8b873623b8408306
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1835346
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2019-10-04 21:10:54 +00:00
Jamie Madill 1f08ab2830 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>
2019-10-03 22:22:05 +00:00
Jamie Madill 2328d65ab3 Revert "GN: Componentize vulkan back-end build."
This reverts commit d46e2fb1e3.

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>
2019-10-03 02:27:17 +00:00
Jamie Madill d46e2fb1e3 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>
2019-10-02 18:37:39 +00:00
Jamie Madill ba04be8c9e 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>
2019-09-25 00:32:30 +00:00
Jamie Madill 8be7a4c7f7 Re-land "Vulkan: SwiftShader integration."
Re-land fixes Win7 configs and placement of the SwiftShader module for
ASAN/TSAN configs.

Adds a new EGL extension for picking SwiftShader when using the Vulkan
back-end. Also cleans up ICD enabling code RendererVk. Also includes a
change to a buffer size necessary to support SwiftShader's minimum
limits.

Bug: angleproject:3876
Bug: b/140251624
Change-Id: I5e16057ac4de07bbdbbd248542b1b9103133294f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1810065
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2019-09-21 14:00:27 +00:00
Austin Kinross 11dc16350c Add support for generating UWP (Windows Store) projects again
Until late 2017, ANGLE supported  Windows Store apps on Windows 8.1,
Windows Phone 8.1, and Windows 10 (via the Universal Windows
Platform, aka UWP).

Unfortunately ANGLE deprecated support for Windows Store when it
switched from GYP to GN in 2017. Since then, users have been able
to use Microsoft\angle for their UWP apps but this isn't ideal since
it's based on a 2017 copy of Google\angle.

This PR bring back support for UWPs, so that UWP users can use
Google\angle again. Specifically it:

- Adds support for generating UWP projects via GN
- Adds helper/util functions specific to UWP (they're mostly
similar to the desktop Windows helpers)
- Fixes some existing Windows Store code that's rotted since 2017
- Disables async shader compilation for UWPs, since its
implementation calls wait on the UI thread (which is forbidden
in UWPs)
- Renames 'ANGLE_ENABLE_WINDOWS_STORE' to
'ANGLE_ENABLE_WINDOWS_UWP', since ANGLE only support UWPs now
- Fixes misc other related issues (such as dependencies on D3D9
headers in API-agnostic code)

Note that this doesn't bring back support for Windows/Phone 8.1.

BUG=angleproject:3922

Change-Id: Ia79ae05a5e0e0a0625eb633bf1928722dfd3e85f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1811871
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-09-20 18:08:01 +00:00
Zhenyao Mo db7a36f456 Revert "Vulkan: SwiftShader integration."
This reverts commit 1224802c21.

Reason for revert: https://bugs.chromium.org/p/angleproject/issues/detail?id=3912

Original change's description:
> Vulkan: SwiftShader integration.
> 
> Adds a new EGL extension for picking SwiftShader when using the Vulkan
> back-end. Also cleans up ICD enabling code RendererVk. Also includes a
> change to a buffer size necessary to support SwiftShader's minimum
> limits.
> 
> 32-bit is currently left disabled to work around an issue on AMD Win7.
> 
> Bug: angleproject:3876
> Bug: b/140251624
> Change-Id: I33c55d994801d6154caca0cad0a608c1e808d517
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1776231
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>

TBR=geofflang@chromium.org,jonahr@google.com,jmadill@chromium.org

Change-Id: Id7464250f6941b0228a6b2a9bd0349823727275b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3876, b/140251624
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1808101
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
2019-09-17 00:22:43 +00:00
Jamie Madill 1224802c21 Vulkan: SwiftShader integration.
Adds a new EGL extension for picking SwiftShader when using the Vulkan
back-end. Also cleans up ICD enabling code RendererVk. Also includes a
change to a buffer size necessary to support SwiftShader's minimum
limits.

32-bit is currently left disabled to work around an issue on AMD Win7.

Bug: angleproject:3876
Bug: b/140251624
Change-Id: I33c55d994801d6154caca0cad0a608c1e808d517
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1776231
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2019-09-16 20:52:55 +00:00
Shahbaz Youssefi 050b124d78 Reland "Vulkan: Debug overlay"
This is a reland of e54d0f90d1

This was reverted due to a build failure as a result of a missing
virtual destructor in the widget base class.

Original change's description:
> Vulkan: Debug overlay
>
> A debug overlay system for the Vulkan backend designed with efficiency
> and runtime configurability in mind.  Overlay widgets are of two
> fundamental types:
>
> - Text widgets: A single line of text with small, medium or large font.
> - Graph widgets: A bar graph of data.
>
> Built on these, various overlay widget types are defined that gather
> statistics.  Five such types are defined with one widget per type as
> example:
>
> - Count: A widget that counts something.  VulkanValidationMessageCount
>   is an overlay widget of this type that shows the number of validation
>   messages received from the validation layers.
> - Text: A generic text.  VulkanLastValidationMessage is an overlay
>   widget of this type that shows the last validation message.
> - PerSecond: A value that gets reset every second automatically.  FPS is
>   an overlay widget of this type that simply gets incremented on every
>   swap().
> - RunningGraph: A graph of last N values.  VulkanCommandGraphSize is an
>   overlay of this type.  On every vkQueueSubmit, the number of nodes in
>   the command graph is accumulated.  On every present(), the value is
>   taken as the number of nodes for the whole duration of the frame.
> - RunningHistogram: A histogram of last N values.  Input values are in
>   the [0, 1] range and they are ranked to N buckets for histogram
>   calculation.  VulkanSecondaryCommandBufferPoolWaste is an overlay
>   widget of this type.  On vkQueueSubmit, the memory waste from command
>   buffer pool allocations is recorded in the histogram.
>
> Overlay font is placed in libANGLE/overlay/ which gen_overlay_fonts.py
> processes to create an array of bits, which is processed at runtime to
> create the actual font image (an image with 3 layers).
>
> The overlay widget layout is defined in overlay_widgets.json which
> gen_overlay_widgets.py processes to generate an array of widgetss, each
> of its respective type, and sets their properties, such as color and
> bounding box.  The json file allows widgets to align against other
> widgets as well as against the framebuffer edges.
>
> Two compute shaders are implemented to efficiently render the UI:
>
> - OverlayCull: This shader creates a bitset of Text and Graph widgets
>   whose bounding boxes intersect a corresponding subgroup processed by
>   OverlayDraw.  This is done only when the enabled overlay widgets are
>   changed (a feature that is not yet implemented) or the surface is
>   resized.
> - OverlayDraw: Using the bitsets generated by OverlayCull, values that
>   are uniform for each workgroup (set to be equal to hardware subgroup
>   size), this shader loops over enabled widgets that can possibly
>   intersect the pixel being processed and renders and blends in texts
>   and graphs.  This is done once per frame on present().
>
> Currently, to enable overlay widgets an environment variable is used.
> For example:
>
>     $ export ANGLE_OVERLAY=FPS:VulkanSecondaryCommandBufferPoolWaste
>     $ ./hello_triangle --use-angle=vulkan
>
> Possible future work:
>
> - On Android, add settings in developer options and enable widgets based
>   on those.
> - Spawn a small server in ANGLE and write an application that sends
>   enable/disable commands remotely.
> - Implement overlay for other backends.
>
> Bug: angleproject:3757
> Change-Id: If9c6974d1935c18f460ec569e79b41188bd7afcc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729440
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>

Bug: angleproject:3757
Change-Id: I47915d88b37b6f882c686c2de13fca309a10b572
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1780897
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2019-09-03 18:33:07 +00:00
Corentin Wallez fc58af4797 Revert "Vulkan: Debug overlay"
This reverts commit e54d0f90d1.

Reason for revert: causes compile failure on Linux CFI bot.

Sample build: https://ci.chromium.org/p/chromium/builders/ci/Linux%20CFI/14810

Sample log: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8903575125463586160/+/steps/compile/0/stdout?format=raw

Original change's description:
> Vulkan: Debug overlay
>
> A debug overlay system for the Vulkan backend designed with efficiency
> and runtime configurability in mind.  Overlay widgets are of two
> fundamental types:
>
> - Text widgets: A single line of text with small, medium or large font.
> - Graph widgets: A bar graph of data.
>
> Built on these, various overlay widget types are defined that gather
> statistics.  Five such types are defined with one widget per type as
> example:
>
> - Count: A widget that counts something.  VulkanValidationMessageCount
>   is an overlay widget of this type that shows the number of validation
>   messages received from the validation layers.
> - Text: A generic text.  VulkanLastValidationMessage is an overlay
>   widget of this type that shows the last validation message.
> - PerSecond: A value that gets reset every second automatically.  FPS is
>   an overlay widget of this type that simply gets incremented on every
>   swap().
> - RunningGraph: A graph of last N values.  VulkanCommandGraphSize is an
>   overlay of this type.  On every vkQueueSubmit, the number of nodes in
>   the command graph is accumulated.  On every present(), the value is
>   taken as the number of nodes for the whole duration of the frame.
> - RunningHistogram: A histogram of last N values.  Input values are in
>   the [0, 1] range and they are ranked to N buckets for histogram
>   calculation.  VulkanSecondaryCommandBufferPoolWaste is an overlay
>   widget of this type.  On vkQueueSubmit, the memory waste from command
>   buffer pool allocations is recorded in the histogram.
>
> Overlay font is placed in libANGLE/overlay/ which gen_overlay_fonts.py
> processes to create an array of bits, which is processed at runtime to
> create the actual font image (an image with 3 layers).
>
> The overlay widget layout is defined in overlay_widgets.json which
> gen_overlay_widgets.py processes to generate an array of widgetss, each
> of its respective type, and sets their properties, such as color and
> bounding box.  The json file allows widgets to align against other
> widgets as well as against the framebuffer edges.
>
> Two compute shaders are implemented to efficiently render the UI:
>
> - OverlayCull: This shader creates a bitset of Text and Graph widgets
>   whose bounding boxes intersect a corresponding subgroup processed by
>   OverlayDraw.  This is done only when the enabled overlay widgets are
>   changed (a feature that is not yet implemented) or the surface is
>   resized.
> - OverlayDraw: Using the bitsets generated by OverlayCull, values that
>   are uniform for each workgroup (set to be equal to hardware subgroup
>   size), this shader loops over enabled widgets that can possibly
>   intersect the pixel being processed and renders and blends in texts
>   and graphs.  This is done once per frame on present().
>
> Currently, to enable overlay widgets an environment variable is used.
> For example:
>
>     $ export ANGLE_OVERLAY=FPS:VulkanSecondaryCommandBufferPoolWaste
>     $ ./hello_triangle --use-angle=vulkan
>
> Possible future work:
>
> - On Android, add settings in developer options and enable widgets based
>   on those.
> - Spawn a small server in ANGLE and write an application that sends
>   enable/disable commands remotely.
> - Implement overlay for other backends.
>
> Bug: angleproject:3757
> Change-Id: If9c6974d1935c18f460ec569e79b41188bd7afcc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729440
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>

TBR=geofflang@chromium.org,syoussefi@chromium.org,jmadill@chromium.org

Bug: angleproject:3757
Change-Id: Ib08e2e7b1a9449ca097673acb11655df5d2bbf31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1778862
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2019-09-02 11:54:11 +00:00
Shahbaz Youssefi e54d0f90d1 Vulkan: Debug overlay
A debug overlay system for the Vulkan backend designed with efficiency
and runtime configurability in mind.  Overlay widgets are of two
fundamental types:

- Text widgets: A single line of text with small, medium or large font.
- Graph widgets: A bar graph of data.

Built on these, various overlay widget types are defined that gather
statistics.  Five such types are defined with one widget per type as
example:

- Count: A widget that counts something.  VulkanValidationMessageCount
  is an overlay widget of this type that shows the number of validation
  messages received from the validation layers.
- Text: A generic text.  VulkanLastValidationMessage is an overlay
  widget of this type that shows the last validation message.
- PerSecond: A value that gets reset every second automatically.  FPS is
  an overlay widget of this type that simply gets incremented on every
  swap().
- RunningGraph: A graph of last N values.  VulkanCommandGraphSize is an
  overlay of this type.  On every vkQueueSubmit, the number of nodes in
  the command graph is accumulated.  On every present(), the value is
  taken as the number of nodes for the whole duration of the frame.
- RunningHistogram: A histogram of last N values.  Input values are in
  the [0, 1] range and they are ranked to N buckets for histogram
  calculation.  VulkanSecondaryCommandBufferPoolWaste is an overlay
  widget of this type.  On vkQueueSubmit, the memory waste from command
  buffer pool allocations is recorded in the histogram.

Overlay font is placed in libANGLE/overlay/ which gen_overlay_fonts.py
processes to create an array of bits, which is processed at runtime to
create the actual font image (an image with 3 layers).

The overlay widget layout is defined in overlay_widgets.json which
gen_overlay_widgets.py processes to generate an array of widgetss, each
of its respective type, and sets their properties, such as color and
bounding box.  The json file allows widgets to align against other
widgets as well as against the framebuffer edges.

Two compute shaders are implemented to efficiently render the UI:

- OverlayCull: This shader creates a bitset of Text and Graph widgets
  whose bounding boxes intersect a corresponding subgroup processed by
  OverlayDraw.  This is done only when the enabled overlay widgets are
  changed (a feature that is not yet implemented) or the surface is
  resized.
- OverlayDraw: Using the bitsets generated by OverlayCull, values that
  are uniform for each workgroup (set to be equal to hardware subgroup
  size), this shader loops over enabled widgets that can possibly
  intersect the pixel being processed and renders and blends in texts
  and graphs.  This is done once per frame on present().

Currently, to enable overlay widgets an environment variable is used.
For example:

    $ export ANGLE_OVERLAY=FPS:VulkanSecondaryCommandBufferPoolWaste
    $ ./hello_triangle --use-angle=vulkan

Possible future work:

- On Android, add settings in developer options and enable widgets based
  on those.
- Spawn a small server in ANGLE and write an application that sends
  enable/disable commands remotely.
- Implement overlay for other backends.

Bug: angleproject:3757
Change-Id: If9c6974d1935c18f460ec569e79b41188bd7afcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729440
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-31 03:40:44 +00:00
James Darpinian 22ec7dc900 Remove all global constructors and exit time destructors.
WebKit compiles with -Wglobal-constructors, so they want this. I decided
to do -Wexit-time-destructors at the same time.

Bug: angleproject:3439
Bug: angleproject:1459
Change-Id: I4b44ae4f8e6f066e07dc7f9f6ced9a5d49dc8f8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1738438
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-07 21:34:14 +00:00
Geoff Lang 6a02f06dfd Implement EGL_ANGLE_create_context_backwards_compatible
This extension allows the user to specify if ANGLE should create a
context of the exact requested version or a higher version context that
is backwards compatible.

BUG=angleproject:3425

Change-Id: I7d0b75cdd7e34a2fc888aa238e1eeb67af82ae0d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601560
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2019-07-18 22:51:46 +00:00
Li, Hao e9cffa62c9 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>
2019-07-17 16:58:00 +00:00
Jamie Madill 77c8496b5f 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>
2019-06-28 17:47:11 +00:00
Geoff Lang 067687f467 Removal global locks from GL entry points. Always lock in EGL.
The ANGLE Vulkan backend is now thread safe for non-share group contexts. This
means that a global GL lock only adds overhead for most use cases.

Remove the angle_force_thread_safety gn argument.

BUG=angleproject:2464

Change-Id: Ic6ba89e18b46e5dd72aa83d0f409097441fcca3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635749
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
2019-06-21 15:26:18 +00:00
Jiawei Shao 9a4bd48d5f Allow overwriting angle_root in non-Chromium GN configurations
This patch adds the support of overwriting angle_root to the one
defined outside ANGLE, which is useful for other projects which
intend to configure ANGLE in their GN builds.

Bug: angleproject:3263
Change-Id: I70a56a3d0afdca2eb66fb9619f0dd4d3efc58dee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1522912
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-06-19 00:48:07 +00:00
Michael Spang b08d53d3c1 Reland "Vulkan: Build validation layers with asserts only"
This reverts commit d187d45ede.

Reason for revert: The correct thing to revert was https://chromium-review.googlesource.com/c/chromium/src/+/1657512

Original change's description:
> Revert "Vulkan: Build validation layers with asserts only"
> 
> This reverts commit 85fef1bc62.
> 
> Reason for revert: This actually seems to break the fucshia_x64 bot:
> 
> Exception: Some files were excluded with --exclude-file, but not found in the deps list: lib/libVkLayer_parameter_validation.so, lib/libVkLayer_core_validation.so
> 
> See https://analysis.chromium.org/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtLzk0ODYyNWNjNDE2NmE3NjRkYWM2NTRlNjlmZDA3MGFjMDE3MzNkNTMM
> 
> Original change's description:
> > Vulkan: Build validation layers with asserts only
> > 
> > Adding ANGLE to the build includes the validation layers, which are only
> > for development. We don't want any development or debugging code to be
> > included by default in release builds, so tie building the validation
> > layers to enablement of asserts.
> > 
> > Bug: angleproject:2475
> > Test: gn gen out/fuchsia_rel --args='target_os="fuchsia" is_debug=false use_goma=true'
> >   gn desc out/fuchsia_rel //fuchsia/engine:web_engine runtime_deps
> > 
> > Change-Id: I6d195c680255dcbc81e95f8e6f80e1e8ace169a2
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1656306
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Michael Spang <spang@chromium.org>
> 
> TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org
> 
> Change-Id: Ia74efcce2b3dda02dc0c0d292bdeb5ea7c5c3530
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:2475
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1657711
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>

TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org

Change-Id: Iab669210c23823b403e3fff7f5199a7aadd032bb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2475
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1658411
Reviewed-by: Michael Spang <spang@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
2019-06-13 16:01:29 +00:00
Jamie Madill d187d45ede Revert "Vulkan: Build validation layers with asserts only"
This reverts commit 85fef1bc62.

Reason for revert: This actually seems to break the fucshia_x64 bot:

Exception: Some files were excluded with --exclude-file, but not found in the deps list: lib/libVkLayer_parameter_validation.so, lib/libVkLayer_core_validation.so

See https://analysis.chromium.org/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtLzk0ODYyNWNjNDE2NmE3NjRkYWM2NTRlNjlmZDA3MGFjMDE3MzNkNTMM

Original change's description:
> Vulkan: Build validation layers with asserts only
> 
> Adding ANGLE to the build includes the validation layers, which are only
> for development. We don't want any development or debugging code to be
> included by default in release builds, so tie building the validation
> layers to enablement of asserts.
> 
> Bug: angleproject:2475
> Test: gn gen out/fuchsia_rel --args='target_os="fuchsia" is_debug=false use_goma=true'
>   gn desc out/fuchsia_rel //fuchsia/engine:web_engine runtime_deps
> 
> Change-Id: I6d195c680255dcbc81e95f8e6f80e1e8ace169a2
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1656306
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Michael Spang <spang@chromium.org>

TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org

Change-Id: Ia74efcce2b3dda02dc0c0d292bdeb5ea7c5c3530
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2475
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1657711
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-06-13 11:56:29 +00:00
Michael Spang 85fef1bc62 Vulkan: Build validation layers with asserts only
Adding ANGLE to the build includes the validation layers, which are only
for development. We don't want any development or debugging code to be
included by default in release builds, so tie building the validation
layers to enablement of asserts.

Bug: angleproject:2475
Test: gn gen out/fuchsia_rel --args='target_os="fuchsia" is_debug=false use_goma=true'
  gn desc out/fuchsia_rel //fuchsia/engine:web_engine runtime_deps

Change-Id: I6d195c680255dcbc81e95f8e6f80e1e8ace169a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1656306
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
2019-06-13 01:04:03 +00:00
Shahbaz Youssefi e7e808aff3 Disable Linux stack traces on CFI builds
Bug: 971977
Change-Id: I2a872bd814e9a356baa3d304e1c352b6a619583e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1649300
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2019-06-07 17:49:47 +00:00
Geoff Lang ec57a24028 Don't remove the symbol_visibility_hidden config in asan builds.
We remove symbol_visibility_hidden to get better stack traces in debug
builds but it causes ASAN issues with multiply instantiated globals.

BUG=angleproject:3507

Change-Id: I8ec664bf7d9506cc45afb6f864de7b7ba7cbe99b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1648275
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2019-06-06 20:47:29 +00:00