BUILD.gn


Log

Author Commit Date CI Message
Jamie Madill 8d986bf2 2018-02-21T08:28:01 Fix missing include files visible to GN. This should also fix the VS project generation. Thanks to Jeff Gilbert from Mozilla for sharing a list of missing files. Bug: angleproject:2360 Change-Id: Ideab28a0169cd7aabb6a7bd3aac3a5832443f023 Reviewed-on: https://chromium-review.googlesource.com/922874 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill d7ebfb92 2018-02-15T16:34:29 Add missing is_fuchsia to system_utils selection. This fixes a build break because of 046fa0efc44d3ac5d. See: https://crrev.com/c/898591 Bug: angleproject:2333 Change-Id: I6a4cb60dd2d2958ea71aaa27f1429233c2787fb4 Reviewed-on: https://chromium-review.googlesource.com/922878 Reviewed-by: Scott Graham <scottmg@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Nico Weber b5db2b49 2018-02-12T15:31:56 Enable -Wimplicit-fallthrough for ANGLE. Also teach MSVC that ANGLE_CRASH() can't return. Also fix instances of the warning in build configurations where UNREACHABLE() can return (e.g. release without dcheck_always_on or debug). If the UNREACHABLE()s are truly unreachable, this change has no behavior change. Bug: chromium:810767 Change-Id: I68f3587cf3e268c3ef634dce7ae3d70399859d0f Reviewed-on: https://chromium-review.googlesource.com/914842 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org>
Lingfeng Yang 4edce336 2018-02-14T19:01:31 GLES1: macOS: Add rpath to libGLESv1_CM.dylib This is to fix error messages when running GLES1 samples (and probably other apps) from different directories than the same one as where libGLESv1_CM.dylib is located. BUG=angleproject:2306 Change-Id: I24ab33eb1bc805c1e64efab9a0acbfcf10480d94 Reviewed-on: https://chromium-review.googlesource.com/920926 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Yuly Novikov bac02d76 2018-02-07T20:36:07 Vulkan: Fix data_deps on layers Was broken by https://chromium-review.googlesource.com/900096 BUG=angleproject:2339 Change-Id: I3c28a38619d83e7dcbb2349565517feb1758976c Reviewed-on: https://chromium-review.googlesource.com/907959 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill a1134ba8 2018-02-07T15:24:47 Vulkan: Relocate third-party libraries. (2/2) This makes the BUILD.gn source lists a lot simpler, since they no longer need to use a special path variable, but instead can use the correct relative paths. This will lead to further simplifications so we can hopefully upstream the Vulkan tools BUILD.gn files. Second part updates the build files and removes the old repositories. Bug: angleproject:2339 Change-Id: I37f5b42a0854ca49448ecbbb32c19c24df57f452 Reviewed-on: https://chromium-review.googlesource.com/905894 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill b62a1c2a 2018-02-06T09:54:02 Vulkan: Reorganize BUILD.gn files. This moves the SPIRV-Tools and glslang and Validation layers build files into the root of the dep folder. Requires an upstream Chrome change to allow for a different path to execute scrips in GN. Also removes the vulkan_support subdirectory. Bug: angleproject:2339 Change-Id: I457b5b05547c092a1e7fef6dd0aaadd8068e2143 Reviewed-on: https://chromium-review.googlesource.com/900096 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Nico Weber 79de62c6 2018-01-31T10:47:14 Explicitly suppress -Wimplicit-fallthrough for angle and its deps. No behavior change since that warning isn't enabled anywhere yet, and it's opt-in. This is a prerequisite for https://chromium-review.googlesource.com/c/chromium/src/+/895726 Bug: chromium:177475 Change-Id: Ie5ffccd240a65646fe07e7d4475f63c4e8620746 Reviewed-on: https://chromium-review.googlesource.com/895728 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org>
Yuly Novikov 199f4294 2018-01-19T19:04:05 Vulkan: Enable on Android Add Android DisplayVk and WindowSurfaceVk variants. Build Vulkan backend and validation layers on Android if toolchain uses required NDK API level. Fix validation layers discovery to work on Android. BUG=angleproject:2314 TEST=angle_end2end_tests builds and runs on Nexus 5X, 12 VULKAN tests pass Change-Id: Iac2ec4ecd6470a7552f9f60c023ba1760aa090c5 Reviewed-on: https://chromium-review.googlesource.com/887797 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 5dd4ad89 2018-01-29T13:53:43 Vulkan: Add a perf test for the Pipeline cache. This micro-benchmark can be used to measure the performance impact of changing the Pipeline cache. For instance, we can check if changing the size of the hash key affects performance significantly. Also updates the build files so angle_perftests can see vulkan.h, and makes the Vulkan headers an explicit source set. This test currently shows that a lot of time is spent in PMurmurHash, with some time also spent in memcmp. Bug: angleproject:2163 Change-Id: Ie8bb3e31d58590f373d28cbbb59f7e372b80cc29 Reviewed-on: https://chromium-review.googlesource.com/884882 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Yuly Novikov e7624004 2018-01-27T18:27:07 Fix Android build After https://chromium-review.googlesource.com/887944 "angle_common" depends on "log" on Android. Failed to link angle_shader_translator during ANGLE roll. BUG=angleproject:1660 Change-Id: I9b0730901bdcf9cab64311994d65a577a1358eeb Reviewed-on: https://chromium-review.googlesource.com/890603 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang 2aaa7b4e 2018-01-12T17:17:27 Add GLES1 targets and stub entry points. * Create a new libGLESv1_CM target. * Merge all autogenerated extension entry points into one file. * Allow creation of ES1 contexts. BUG=angleproject:2306 Change-Id: I446258363a96a3c37d657089dd7c1cff0fa3cf78 Reviewed-on: https://chromium-review.googlesource.com/865718 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Frank Henigman e42ec189 2017-12-11T23:58:53 Add angle_link_glx arg to standalone gn build. Port the angle_link_glx setting of the gyp build to the standalone gn build. When set to true, libGL will be linked into libANGLE, instead of dlopen-ed. This is useful when using apitrace. BUG=angleproject:1569 Change-Id: I16a91504960169efdcde3b2c50b944de148d9ba6 Reviewed-on: https://chromium-review.googlesource.com/821691 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Geoff Lang b944053a 2017-11-28T13:26:34 Add extra warnings for narrowing and bool conversion. BUG=angleproject:2258 Change-Id: If571820fccca1daba0ea1ac5a204f95b1b3c59f9 Reviewed-on: https://chromium-review.googlesource.com/794093 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill ff7aac5e 2017-11-13T16:57:14 Re-land "Export angle::PlatformMethods." This should fix undefined function call sanitizer warnings. Re-land fixes the build and uses proper export annotation. Also fixes the missing source includes in BUILD.gn for libANGLE so future changes to Platform.h (and other includes) will get picked up by the dependency analyzer step. BUG=chromium:778918 Change-Id: I92cc8a43bbbdc70de50a67f73b223d8f903cd6cd Reviewed-on: https://chromium-review.googlesource.com/767111 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org>
Corentin Wallez 163965d5 2017-10-11T11:38:55 BUILD.gn: prepare dEQP test support on Mac BUG=angleproject:1569 Change-Id: I703f4739726c849950ba103049fa39498a4ff1df Reviewed-on: https://chromium-review.googlesource.com/744361 Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez aa9c396b 2017-10-27T14:54:39 Revert "BUILD.gn: prepare dEQP test support on Mac" This reverts commit 4b8b650c8e4586c14466faa9527175755860cd6b. Reason for revert: causes build failure on the Mac dEQP builder. Original change's description: > BUILD.gn: prepare dEQP test support on Mac > > BUG=angleproject:1569 > > Change-Id: I77aa55d28b884fa648ff52aedddf3a23fe6e4a8c > Reviewed-on: https://chromium-review.googlesource.com/713194 > Commit-Queue: Corentin Wallez <cwallez@chromium.org> > Reviewed-by: Frank Henigman <fjhenigman@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> TBR=fjhenigman@chromium.org,jmadill@chromium.org,cwallez@chromium.org Change-Id: Idc08cf12294505600890d1c6e43f62c0261631a5 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:1569 Reviewed-on: https://chromium-review.googlesource.com/741881 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 4b8b650c 2017-10-11T11:38:55 BUILD.gn: prepare dEQP test support on Mac BUG=angleproject:1569 Change-Id: I77aa55d28b884fa648ff52aedddf3a23fe6e4a8c Reviewed-on: https://chromium-review.googlesource.com/713194 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov c4f1dd83 2017-10-25T17:02:29 Use angle::BitSetIterator optimizations on arm64 as well Previously were enabled only on x86_64. Also change from using target_cpu to current_cpu, as the doc recommends. BUG=angleproject:1814 Change-Id: Ia7e8e930c76aab5cfb47b75e0ec78902ab313237 Reviewed-on: https://chromium-review.googlesource.com/737438 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 6d94f064 2017-10-21T22:19:40 Add more complete NULL driver for the GL back-end. This implements a NULL driver in OpenGL by stubbing out most of the GL functions in FunctionsGL except a few static "Gets" that are needed for initialization with Chromium and the tests. It is intended to be used for performance testing ONLY and will not have correct behaviour. It also adds a define to enable conditionally excluding the null entry points for implementations that wish to save on a bit of binary size. Also fixes some of the typedefs in functionsgl_typesdefs.h that were turned up after implementing the direct assignment from NULL stub entry point, generated from gl.xml, to the function pointer with type defined from functionsgl_typedefs.h. BUG=angleproject:2188 Change-Id: Ifa1e4739cb471ab6b52a4bf24c16d9eb4b334ac5 Reviewed-on: https://chromium-review.googlesource.com/727530 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jonathan Metzman fb9051a5 2017-10-09T16:14:06 Switch from use_libfuzzer to using_fuzzing_engine. The current build configuration causes AFL based fuzzers to be built with incorrect options. Bug: 770970 Change-Id: I712dd72a0f680df538e98622032cb13f39ed8c63 Reviewed-on: https://chromium-review.googlesource.com/707933 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Frank Henigman d0ef13a2 2017-08-28T22:53:24 Stand-alone build with gn. This should do the same things as the stand-alone gyp build, but with gn. You should switch to gn as gyp support will go away. You need a recent enough version of gn. If yours is too old try this one: ./buildtools/linux64/gn If "gclient sync" or anything fails with an ImportError on gyp stuff, try running it with the following PYTHONPATH in the environment: PYTHONPATH=tools/gyp/pylib BUG=angleproject:1569 Change-Id: I56d19bec2d8b649a7bd65062c656cbfc69ea3dd8 Reviewed-on: https://chromium-review.googlesource.com/642588 Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Ben Wagner d736cccf 2017-10-11T15:08:22 Add :extra_warnings to all units in BUILD.gn. Fix resulting warnings. Change-Id: Ie251012ee01aa484a8c489f9deeec385a50528f9 Reviewed-on: https://chromium-review.googlesource.com/713695 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Ben Wagner 211bff3f 2017-10-10T23:53:20 Enable inconsistent-missing-override for Clang Fix the resulting compile errors. No-Try: true Change-Id: I88e74f240b29ecf7b3883b0c5880dcb871e4c3cd Reviewed-on: https://chromium-review.googlesource.com/710415 Commit-Queue: Ben Wagner <benjaminwagner@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuly Novikov f0be43fe 2017-06-29T21:25:56 Add missing dependency on exe_and_shlib_deps BUG=chromium:593874, angleproject:2095 Change-Id: I97860f7978d509bb36dfdfb5fac7524e9d24f5fe Reviewed-on: https://chromium-review.googlesource.com/557599 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Ken Russell fcadd08a 2017-06-28T14:01:15 Provide build target for angle_shader_translator sample. This is useful for building the sample within Chromium rather than in ANGLE's standalone build, which has other requirements like a full Visual Studio installation. BUG=angleproject:2095 Change-Id: I785d87ecb5166d8f640a5c8a5f321c3209017cc5 Reviewed-on: https://chromium-review.googlesource.com/553399 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5ea762a6 2017-06-07T14:59:51 Consolidate base:: imports. This merges the mrucache and numerics into one folder, to prevent having to make two identical versions of logging. BUG=angleproject:2044 Change-Id: Iba6dab05b21eb9ba0de44f27a90579c590a9a7fd Reviewed-on: https://chromium-review.googlesource.com/522870 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9216a6e2 2017-05-24T15:53:20 Introduce MRUCache. This library comes from Chromium's base, and is useful for many use cases in ANGLE. It can replace the custom MRU code we use in the RenderStateCache. It will also be useful for implementing a program binary cache. BUG=angleproject:2044 Change-Id: Iba166fe380d7ed4e3123428b0227b9d299f756d1 Reviewed-on: https://chromium-review.googlesource.com/516384 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tom Anderson 26098cb2 2017-05-24T20:39:28 Add missing dependencies on exe_and_shlib_deps (angle) BUG=chromium:723069 Change-Id: I2b3c9be297c2b65955e31f393756ca266cc7c60b Reviewed-on: https://chromium-review.googlesource.com/514436 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e1fd475b 2017-04-26T16:46:48 Apply release asserts config to all dependents. Our test sets (e.g. angle_perftests) were not having the config applied. BUG=angleproject:747 Change-Id: Idd3a2cba214d38a923c1936787f9dec4bd016326 Reviewed-on: https://chromium-review.googlesource.com/487730 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Frank Henigman 29f148b0 2016-11-23T21:05:36 Support Vulkan on Linux as well as Windows. Refactor display and surface classes into Win32 and Linux parts and add Linux parts to gn and gyp builds. BUG=angleproject:1668 Change-Id: I2a7d29c35f4f42fa0035bd97938d3770f3627672 Reviewed-on: https://chromium-review.googlesource.com/412426 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 6de51858 2017-04-12T09:53:01 Optimize angle::BitSetIterator. Adds a new custom bitset template to handle packing as many bits as possible into a single variable. Intelligently select the right class depending on platform features and bit sizes. For now, always use a packed 64-bit set on 64-bit, instead of using a 32-bit set for smaller bitsets. BUG=angleproject:1814 Change-Id: I3ffef815c15515555833f6fc9302d8a4eee5423b Reviewed-on: https://chromium-review.googlesource.com/471827 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 8f77e5d3 2017-03-24T11:58:59 gpu_info_util: Implement GetSystemInfo on Windows BUG=angleproject:1874 Change-Id: I97a02d2c8b1f7ecb530684464fc02f528d34de7c Reviewed-on: https://chromium-review.googlesource.com/458965 Reviewed-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 16d4e472 2017-03-20T13:06:19 BUILD.gn: declare_args() use_lipci This is the third stage of 05356e35d363355c9510f3ef9eb8e639db3900bc and is necessary for projects putting use_libpci in the gn args, like headless Chrome. BUG=angleproject:1874 Change-Id: I03a010ababf08f992f0fb26ff87ddc48afd5a237 Reviewed-on: https://chromium-review.googlesource.com/457277 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 05356e35 2017-03-03T14:57:53 BUILD.gn: do not redefine use_libpci if already present We want to move the definition of use_libpci from gpu/config to ANGLE. To avoid breaking compilation we should do it in three steps: - Make ANGLE not redefine use_libpci - Remove definition of use_libpci from Chrome - Make ANGLE define use_libpci unconditionnaly This commit is the first step. BUG=angleproject:1874 Change-Id: I08d0996ca536c51e1617f656171d696f05605725 Reviewed-on: https://chromium-review.googlesource.com/450037 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez d83f64f5 2017-02-16T10:58:46 gpu_info_util: Implement GetSystemInfo on OSX Also adds a test that prints the gathered information for manual checking and to help know what the system is when looking at the logs. BUG=angleproject:1874 Change-Id: Icb0cc390c9808fd8db0f966d667b94dde4b94e62 Reviewed-on: https://chromium-review.googlesource.com/443845 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Corentin Wallez 878baf90 2017-02-15T13:57:16 gpu_info_util: address comments for CL 438940 BUG=angleproject:1874 Change-Id: I6397d9141a7c25f818ce970212a4a8e8afbd5a27 Reviewed-on: https://chromium-review.googlesource.com/442676 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 7b4e00d2 2017-02-08T10:43:47 gpu_info_util: Implement GetSystemInfo on Linux BUG=angleproject:1874 Change-Id: Id39c26b806e6a7937517235afe0ca60f5087df5b Reviewed-on: https://chromium-review.googlesource.com/438940 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Jamie Madill e794cd86 2017-01-13T17:29:51 Vulkan: Implement new GLSL translator back-end. The Vulkan GLSL translator back-end will handle validating and translating our WebGL/ESSL shaders into Vulkan-specific GLSL. glslang (the Vulkan one) accepts both GLSL and GLSL ES shaders as inputs, and both the desktop and ESSL back-ends give incompleteness warnings when used. For now, use the desktop GL 450 as a target for Vulkan GLSL. The Vulkan-specific changes are currently only to add locations to every vertex input and fragment output. BUG=angleproject:1575 Change-Id: I7c3f32f522e9d18e5f8618eb7927336bf4fbdcf2 Reviewed-on: https://chromium-review.googlesource.com/412266 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Andrew Grieve 949e0700 2017-01-16T09:44:49 Update BUILD.gn to account for Android default linker script change BUG=681557 Change-Id: I8fb4e50d241e3519b27d57a507d92cc3c15877ef Reviewed-on: https://chromium-review.googlesource.com/430877 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill dcab56a1 2017-01-05T14:47:34 Move some file utils to common. Since common is shared through all ANGLE code (libANGLE/tests/samples) this is the most general place for these utils, and will give libANGLE access to them. We'll need them to get the current executable dir for loading the Vulkan layers. This also means we'll need to fix the global static variable use when we have the ability. BUG=angleproject:1319 BUG=chromium:677841 Change-Id: I7af61920635135b28a2f02f4a8d019ee88c9dd28 Reviewed-on: https://chromium-review.googlesource.com/425440 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 80ab03c5 2017-01-03T11:03:23 Add angle_white_box_tests for libANGLE render tests. angle_end2end_tests included tests that used both the entry points from our shared libraries as well as calling libANGLE classes like gl::Context directly. Split these into a new test executable. This also removes the libANGLE code from all the end2end tests. It's necessary to add static versions of libEGL and libGLESv2 so that we call safely call methods in libANGLE an the entry points from the same target. BUG=angleproject:1660 Change-Id: I6d82021b9300231ddb5fee435e5d77728f8f1292 Reviewed-on: https://chromium-review.googlesource.com/419175 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 192745a7 2016-12-22T15:58:21 Add varying packing validation for WebGL. This CL moves the varying packing from the D3D layer up to Program. This is necessary for WebGL validation, and gives us consistency for the various back-ends. There may be some additional cleanup work on the VaryingPacking class, because it does some work that is D3D- specific. WebGL requires strict varying packing. Instead of allowing success unconditionally, it's an explicit error to succeed to pack a set of varyings that the sample algorithm would fail to pack. Introduce a new packing mode option to the varying packing class to handle this different packing style, while keeping our old more relaxed packing method for ES code. BUG=angleproject:1675 Change-Id: I674ae685ba573cc2ad7d9dfb7441efa8cb2d55fc Reviewed-on: https://chromium-review.googlesource.com/423254 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Yuly Novikov a4ab5804 2016-12-19T17:44:22 Remove libEGL dependency on libANGLE libEGL should use libGLESv2 for EGL implementation, to prevent libANGLE global variables being duplicated. BUG=angleproject:1660 Change-Id: I84c1e22fcce8f4a21acfb1fcde0c84ebd77204f8 Reviewed-on: https://chromium-review.googlesource.com/422574 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 327ba857 2016-11-30T12:38:28 Vulkan: Hook up loader code. This integrates the build files for the loader SDK, and tests the compilation by calling InitInstance. There's no current way to test the runtime behaviour since there's no way for the tests to initialize the Vulkan back-end, that will come in the next CL. BUG=angleproject:1319 Change-Id: Ia8bf96ca068eaf40744c9753b59ffaaa5ada8a73 Reviewed-on: https://chromium-review.googlesource.com/367519 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 120040e2 2016-12-07T14:46:16 D3D: Move some HLSL-specific code to a new folder. This code doesn't actually call any D3D runtime methods, so it can be included in our cross platform unit tests. Just include the varying packing code for now. BUG=angleproject:1296 BUG=angleproject:1638 Change-Id: I5c0ccccb00e1c13ca98448256be048f7cd0968ce Reviewed-on: https://chromium-review.googlesource.com/417116 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 64598b53 2016-11-11T08:25:44 Add the ANGLEPlatform entry points to eglGetProcAddress Reland with a Windows build fix. We want to move the Chromium initialization of the ANGLE platform from being Windows-specific to being EGL-specific. Because the mechanisms by which the ANGLE library is loaded are OS-specific, it is inconvenient to use dlsym and friends to get the ANGLEPlatform entry points. Instead we expose the through eglGetProcAddress which is readily available in the EGL-specific part of Chromium. BUG=angleproject:1621 Change-Id: I022a39493756a3b5d1ed626fd05e74af3f043211 Reviewed-on: https://chromium-review.googlesource.com/410066 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuly Novikov dfd7fb2a 2016-11-11T16:05:11 Cleanup after merging translator_lib into translator Rename a few references to translator_lib BUG=angleproject:1596 Change-Id: Ib715fdd8a949dc46a5ef628ea2d7f71b1b771845 Reviewed-on: https://chromium-review.googlesource.com/410287 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov ea586549 2016-11-10T17:33:43 Cleanup after translator component removal - Unite translator with translator_lib - Remove flags and defines for shared library exports BUG=angleproject:1596 Change-Id: Icd145a4b79e2472766a2b56017bb0f36f244482e Reviewed-on: https://chromium-review.googlesource.com/410261 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Corentin Wallez 7f07caa9 2016-10-25T07:43:33 Rename the build/ directory. GYP related files went in gypfiles/, and the gni went in gni/ this changes frees up the build/ directory name for Chromium's build/ directory. BUG=angleproject:1569 Change-Id: I76fe343d569239c2732ba87986fcf7debc21d417 Reviewed-on: https://chromium-review.googlesource.com/403029 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov e653403b 2016-11-01T18:19:06 Remove component translator target and keep static_library. Rename translator_static to translator and use it everywhere. BUG=angleproject:1596 Change-Id: I36c990d54979d2460b1513a65cca0b82f8d65c80 Reviewed-on: https://chromium-review.googlesource.com/406668 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang d08f3b3d 2016-09-23T15:56:30 Add stubs for a NULL renderer. BUG=angleproject:1468 Change-Id: I2ed2b65a4b6f6ea3dda61c0467aef95e407cd38c Reviewed-on: https://chromium-review.googlesource.com/388844 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 054f7ed0 2016-09-20T17:15:59 preprocessor: Miscellaneous cleanups - Use full header paths in includes - Use ASSERT instead of assert - Use angle::NonCopyable instead of PP_DISALLOW_COPY_AND_ASSIGN - Use range-for in a couple places - Remove pp_utils.h BUG=angleproject:1522 Change-Id: If107fef89e8465bca65cf664926d1051c5d1e232 Reviewed-on: https://chromium-review.googlesource.com/387212 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 1db8a26b 2016-09-22T13:53:47 Fix warning in standalone in new validation. BUG=angleproject:1512 Change-Id: Ifdb8d4c38e3c90e03eee42ba9fd6390dffd61363 Reviewed-on: https://chromium-review.googlesource.com/388611 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Corentin Wallez a5615c69 2016-09-19T09:54:44 BUILD.gn: Disable pool alloc on all translator dependents when fuzzing It contains defines that need to be consistent between the header and the implementation. BUG=angleproject:1522 BUG=chromium:647807 Change-Id: Ica144c455b7366bd9939a07b171edffe5af8bf35 Reviewed-on: https://chromium-review.googlesource.com/386945 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 30e11ab2 2016-09-16T10:29:54 BUILD.gn: make the translator fuzzer a source set When we want to use GN standalone, the fuzzer_test template won't exist. Instead make the fuzzer a source set that is used by a target in Chrome. BUG=angleproject:1522 Change-Id: I347e633448d508eb124d0861b0fb28315923016c Reviewed-on: https://chromium-review.googlesource.com/386636 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 28b6528c 2016-06-16T07:24:50 Add a fuzzer for the shader translator. BUG=angleproject:1522 Change-Id: Idbe8194ba478366e99c7460d403d03fe27dd89d0 Reviewed-on: https://chromium-review.googlesource.com/353153 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov e3352f94 2016-08-12T20:40:14 Change angle_util to be a shared library So that there will be one instance of static thread synchronization variables in AndroidWindow. Previously there was one instance in lib_angle_deqp_gles2_tests__library and one in libangle_deqp_libgles2, resulting in AndroidWindow::initialize waiting forever. Also make the change in GYP build to fix standalone build, and fix rpath issues on Mac. BUG=angleproject:1471 TEST=end2end and deqp tests on standalone Win10 and end2end on GN Mac 10.11 Change-Id: I731578459400bb47d269df129aabed9b67b555e6 Reviewed-on: https://chromium-review.googlesource.com/376202 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 55033e58 2016-08-25T17:32:12 Revert "Change angle_util to be a shared library" This reverts commit 2f9b5e6f79cd576bd3b7110272d58f143801bf0f. Change-Id: I90a7ba0596e79795c9549bc268eabff69c96d572 Reviewed-on: https://chromium-review.googlesource.com/376079 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 2f9b5e6f 2016-08-12T20:40:14 Change angle_util to be a shared library So that there will be one instance of static thread synchronization variables in AndroidWindow. Previously there was one instance in lib_angle_deqp_gles2_tests__library and one in libangle_deqp_libgles2, resulting in AndroidWindow::initialize waiting forever. BUG=angleproject:1471 Change-Id: Ia529c91e34960eb352730c1bb89a91ce6336c8a0 Reviewed-on: https://chromium-review.googlesource.com/368983 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross 91e71ed9 2016-08-23T09:29:22 Misc minor WinRT fixes and cleanups Change-Id: Ibf041e74d81ef266791e6b6a3bb43bf504b035b3 Reviewed-on: https://chromium-review.googlesource.com/374040 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 509a1d46 2016-07-18T10:10:29 GN: Enable more MSVS warnings. Some warnings were enabled only in standalone builds. Enabling them in the GN config will prevent standalone build breakage and also make some potentially harmful warnings more visible to non-Windows devs. BUG=angleproject:1449 Change-Id: I11fe9bac957864d37af37b3860a22fcbd91946ac Reviewed-on: https://chromium-review.googlesource.com/360961 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill ce1ed238 2016-07-24T12:45:17 D3D11: Detect driver version for blit workaround. Since the newer driver versions are required for WebGL 2 conformance, we need a solution that can detect a driver version to know if we should apply the workaround. Use a modified copy of Chrome's Windows GPU driver detection code. In the future we should extend this to a full module when we port the command buffer workarounds. BUG=angleproject:1452 Change-Id: I783d5726454671cc22585a2bf990c071d539aa9f Reviewed-on: https://chromium-review.googlesource.com/361962 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill a8503cef 2016-07-18T13:47:12 Re-land "GN: Enable chromium_code config instead." Using "no_chromium_code" is a bit less strict, but ANGLE should be able to handle slightly stricter warnings. Re-land with fix for Clang build. BUG=angleproject:1449 Change-Id: I8988287d630a6258f2f9ee90e7bfef5f2d5799cd Reviewed-on: https://chromium-review.googlesource.com/361331 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5bc93c41 2016-07-18T16:34:42 Revert "GN: Enable chromium_code config instead." Seems to fail the Clang build: ../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp(35,60): error: comparison of integers of different signs: 'UINT' (aka 'unsigned int') and 'int' [-Werror,-Wsign-compare] maxSrvMip = (desc.Texture2D.MipLevels == -1) ? INT_MAX : maxSrvMip; ~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~ BUG=angleproject:1449 This reverts commit aeb477fbe5fad337815560a0031815f0636471a1. Change-Id: I01baaf082f282c9d80a9c17fd6ffc2b8911313b2 Reviewed-on: https://chromium-review.googlesource.com/361094 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill aeb477fb 2016-07-15T13:32:37 GN: Enable chromium_code config instead. Using "no_chromium_code" is a bit less strict, but ANGLE should be able to handle slightly stricter warnings. BUG=angleproject:1449 Change-Id: Ifaf77201085dd70cf5ff628b1aa02de55c5e96ba Reviewed-on: https://chromium-review.googlesource.com/360940 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Dirk Pranke 313d9447 2016-07-13T18:01:55 Stop linking a static_initializer into the Mac chromium build. The :angle-image_util target was a source_set rather than a static_library(), causing us to link in loadimage.cpp, which pulled in mathutils.cpp, which contains a static initializer. Switching :angle_image_util to a static library (which is what GYP does) solved the problem. R=rsesek@chromium.org, cwallez@chromium.org BUG=628052 Change-Id: I63387b3fc9d799c92f7c1b49a1c7c7435e70a951 Reviewed-on: https://chromium-review.googlesource.com/360228 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Frank Henigman e8d5c5c4 2016-07-07T13:17:47 Check ozone_platform_gbm before doing gbm stuff. Just checking use_ozone fails when building an ozone platform which doesn't have gbm, e.g. chromecast. BUG=angleproject:1439 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_gn_chromeos_rel;tryserver.chromium.android:android_compile_dbg Change-Id: Idec14441ce30dd872b3bfddfe844abfeb910cc02 Reviewed-on: https://chromium-review.googlesource.com/358860 Reviewed-by: Luke Halliwell <halliwell@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Geoff Lang 6e4cfceb 2016-06-13T15:06:31 Refactor ANGLE's image manipulation code into a static library. Allows for chromium to make use of some of the functionality. BUG=612205 Change-Id: Ib4435ca44775a3a554b0fb3bd384bd4d31d7952d Reviewed-on: https://chromium-review.googlesource.com/351753 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Frank Henigman 62ba9623 2016-06-27T17:08:28 Require libdrm only if use_ozone=1. This is more accurate, and doesn't break platforms with no pkgconfig, e.g. Android. BUG=angleproject:1297 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_gn_chromeos_rel;tryserver.chromium.android:android_compile_dbg Change-Id: Iafbd66a5e81467d2a5431c3bb1ddd26a837888e7 Reviewed-on: https://chromium-review.googlesource.com/356481 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Frank Henigman 77df676e 2016-06-13T16:39:01 Add ozone display gn build. Pick up ozone source when use_ozone = true. Don't link X11 unless use_x11 = true. BUG=angleproject:1297 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_gn_chromeos_rel Change-Id: I94e6242189646c8a18b00436294bccdd4c5a8785 Reviewed-on: https://chromium-review.googlesource.com/352251 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Robert Sesek db8ae836 2016-06-21T11:47:03 [Mac/GN] Properly set the install_name and rpath for shared_library targets and their consumers. BUG=621932 R=cwallez@chromium.org Change-Id: I10b0fd5a668d74b7062747002bc48ef0e0a6df9c Reviewed-on: https://chromium-review.googlesource.com/354302 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Yuly Novikov a6426d67 2016-06-03T00:18:38 Android GL backend and end2end tests Just the bare minimum implementation for end2end tests to run. BUG=angleproject:1362 TEST=angle_end2end_tests on Nexus 5X Change-Id: I92293e0f8bdc2ffaa5d4661927750d7cb3d931e6 Reviewed-on: https://chromium-review.googlesource.com/349353 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill e2e406c3 2016-06-02T13:04:10 Add base::numerics for safe math and conversions. This replaces are "IsUnsignedXXXSafe" family of methods. Also add overflow checks to unpack block sizes. BUG=angleproject:1397 Change-Id: Ib47be149b0486c70f795b0d0f8899441faac9340 Reviewed-on: https://chromium-review.googlesource.com/348062 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e31fd875 2016-05-27T08:35:36 Enable Release ASSERT in ANGLE. This will mainly affect the Chromium bots. BUG=angleproject:790 Change-Id: I0c4318e83eedba851f15b3b139551cdb6a2fde12 Reviewed-on: https://chromium-review.googlesource.com/346103 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9e54b5af 2016-05-25T12:57:39 Add Vulkan stubs. Currently enabled for Windows by default. BUG=angleproject:1319 Change-Id: I87921c579bee466465fb1e3f629bb3a40fdff659 Reviewed-on: https://chromium-review.googlesource.com/328730 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 87ae8cdf 2016-05-19T17:59:55 Fix Linux standalone compilation. simple_texture_2d, hello_triangle, stencil_operations, simple_texture_cubemap fail to compile after https://chromium-review.googlesource.com/342050. BUG=angleproject:1319 TEST=ninja -C out/Release all Change-Id: Ib70008036f8688b737f3f40b5224437a7afdea19 Reviewed-on: https://chromium-review.googlesource.com/346121 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Nico Weber de44d3a4 2016-05-13T17:27:57 gn/mac: Build GL code, and include CGL code. BUG=chromium:431177 Change-Id: Id9c8ad68a9703591d6f576bfae3d7061526ed27f Reviewed-on: https://chromium-review.googlesource.com/344740 Tryjob-Request: Nico Weber <thakis@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org>
John Bauman e271a7e4 2016-05-11T17:03:32 Use data_deps to depend on :copy_compiler_dll This should ensure that d3dcompiler_47.dll is saved into an isolate in chromium, as it's used at runtime. BUG=611235 Change-Id: I64801f00bf90f2be68c7a691724609bbf4d28dfa Reviewed-on: https://chromium-review.googlesource.com/344351 Tryjob-Request: John Bauman <jbauman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: John Bauman <jbauman@chromium.org> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Steven Bennetts 369d03c1 2016-05-05T10:37:38 Disable angle_enable_gl on chromeos BUG=angleproject:1370 Change-Id: I63e3ee8fc6e08fcd2a908cdca3558af886526cbd Reviewed-on: https://chromium-review.googlesource.com/342740 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jeremy Roman 06feb81c 2016-04-06T16:39:52 Make :angle_common depend on :commit_id. BUG=chromium:601195 Change-Id: Ic90b8c8dbe07700e66c8fe973a3e620f439d2fbe Reviewed-on: https://chromium-review.googlesource.com/337335 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Corentin Wallez cc068e93 2016-02-29T16:37:04 Add DisplayGL::getDriverVersion and implementation on Linux NVIDIA Some GPU driver bug workarounds should be active only for specific driver version ranges. This adds NVIDIA Linux driver detection using the XNVCtrl X11 extension. BUG=590870 Change-Id: I8cbf692a0c8a6da7473169f29d720bdc2d07663d Reviewed-on: https://chromium-review.googlesource.com/329637 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez dbc9ccfb 2016-02-02T11:44:21 Remove the _ANGLE targets from the GN build. They are no longer needed by Chromium. BUG=522967 Change-Id: I187eed52378a58f3ea24c3e21082c6a93e56da7f Reviewed-on: https://chromium-review.googlesource.com/325330 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez adc5b0eb 2016-01-12T16:35:23 Fix translator having multiply defined symbols in GN builds. This error was introduced in 82b5ab606f68bad27fe5d143d8b96e84801222ac where the translator's essl and glsl sources are compiled in both the translator and translator_lib targets. As translator depends on translator_lib this caused symbols to be defined multiple times. BUG=angleproject:1250 Change-Id: I50bab7112d1460e14710f50250fa2417b2163236 Reviewed-on: https://chromium-review.googlesource.com/321770 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez c89df2ba 2015-12-07T13:05:17 Add loadable_module versions of libEGL and libGLESv2. Reland with a link fix for Clang on Windows In order to implement the --use-gl=angle Chrome flag on Linux, we need to have the ANGLE .so directly in the build directory however GYP places shared_libraries under lib/ on Linux. On the contrary loadable_modules cannot be linked against so we need to keep the shared_library targets. This commit adds _ANGLE versions of the libEGL and libGLESv2 targets as loadable module that depend on their respective shared library. BUG=522967 Change-Id: Iad968ab786b94b6041c279921de99633d23b48a7 Reviewed-on: https://chromium-review.googlesource.com/318470 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill 1fae3556 2016-01-07T14:33:48 Add dEQP Linux GN integration. BUG=angleproject:1272 Change-Id: I20cb8968221c25bb374b3cc71d7ca619a35f1a2f Reviewed-on: https://chromium-review.googlesource.com/320781 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill edbc2449 2016-01-04T11:25:00 Add dEQP GN integration. This is Windows-only for now, but will be expanded to Linux. Also do a bit of refactoring in our deqp.gypi file. BUG=angleproject:1272 Change-Id: I526a99fe3b91a2d9e8901c7e033a4916a06780be Reviewed-on: https://chromium-review.googlesource.com/320800 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross 82b5ab60 2015-12-11T09:30:15 Compile out GLSL/ESSL translator output code if it's not needed In WinRT we only use the HLSL code, so the GLSL/ESSL output code is not necessary and is only adding to our binary size. BUG=angleproject:1250 Change-Id: I9363ca3981bde50a230f8353c1bcc09f6ea209cb Reviewed-on: https://chromium-review.googlesource.com/317358 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Austin Kinross <aukinros@microsoft.com> Tested-by: Austin Kinross <aukinros@microsoft.com>
Roland McGrath f786c2b9 2016-01-05T12:26:07 GN: Use $root_out_dir in in copy_compiler_dll rule The root_build_dir variable yields the root of the build tree. But when the component is being built under a non-default toolchain, its output files are delivered to a toolchain subdirectory instead. The copy_compiler_dll rule should put its output next to where libANGLE and things built using it will go, which is root_out_dir. This fixes cases where the angle GN component is instantiated under more than one toolchain, which heretofore would produce multiple Ninja rules for the same target file $root_build_dir/d3dcompiler_47.dll and thus get complaints from Ninja. BUG=512869 Change-Id: I9fe83c5c5fa74902ef270654d3707636588af6b7 Reviewed-on: https://chromium-review.googlesource.com/320119 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Roland McGrath <mcgrathr@chromium.org>
Corentin Wallez 4bc76d07 2015-12-15T20:07:23 Revert "Add loadable_module versions of libEGL and libGLESv2." This reverts commit 6beb0bfdd0e57d7cb5797355d10e971c7c97cc29. It caused compile failures on win_clang_dbg because when building libEGL_ANGLE.dll DllMainCRTStartup wasn't defined. Change-Id: I8080f8db373f5988d86560da1b8b2a1bae30d3ea Reviewed-on: https://chromium-review.googlesource.com/318460 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 6beb0bfd 2015-12-07T13:05:17 Add loadable_module versions of libEGL and libGLESv2. In order to implement the --use-gl=angle Chrome flag on Linux, we need to have the ANGLE .so directly in the build directory however GYP places shared_libraries under lib/ on Linux. On the contrary loadable_modules cannot be linked against so we need to keep the shared_library targets. This commit adds _ANGLE versions of the libEGL and libGLESv2 targets as loadable module that depend on their respective shared library. BUG=522967 Change-Id: I08f2ce0ee0430eff5bee852f09cd7d30b94d6266 Reviewed-on: https://chromium-review.googlesource.com/316421 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Austin Kinross 502f3df6 2015-12-02T12:33:18 Define EGL_EGLEXT_PROTOTYPES in GN projects This makes sure that EGL_EGLEXT_PROTOTYPES is defined in the same places as GL_GLEXT_PROTOTYPES. BUG=angleproject:1190 Change-Id: I0e55aad5728df765bff495822570e7590b157d68 Reviewed-on: https://chromium-review.googlesource.com/315208 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Dirk Pranke ac0f9b1f 2015-11-12T14:54:10 Add missing GN build dependency on -lrt for linux. Without this fix, angle_end2end_tests links fine on Trusty but not on Precise or older versions of Linux (util/linux/LinuxTimer.cpp calls clock_gettime(), which is part of libc on newer versions of the OS but requires -lrt on older versions. GYP had the dependency specified but GN didn't). R=cwallez@chromium.org BUG=432959, 531296 Change-Id: I70e1f701d099f3ba72c7e5dfd7af6d47658ffad9 Reviewed-on: https://chromium-review.googlesource.com/312298 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang ee48376c 2015-09-15T13:12:07 Update to the latest versions of the GL and EGL headers. Add GLES 3.1 and 3.2 headers. Remove GLES 3.0 extension headers and entry point files. Re-land fixes double define from different style defines in libGLESv2.gypi and other projects. Re-land fixes missing defines in angle_util project in gn. Change-Id: I1952413cd4390e6f5450df809f8f5867bf6f49e2 Reviewed-on: https://chromium-review.googlesource.com/299771 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 0393310f 2015-09-15T16:59:59 Revert "Update to the latest versions of the GL and EGL headers." Issues with GN build. This reverts commit 8284436798dd184afe61cbb586185cb68e503d6f. Change-Id: I99d186019135bbbe250e95c9567854108d31c556 Reviewed-on: https://chromium-review.googlesource.com/299870 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 82844367 2015-09-11T13:52:12 Update to the latest versions of the GL and EGL headers. Add GLES 3.1 and 3.2 headers. Remove GLES 3.0 extension headers and entry point files. Re-land fixes double define from different style defines in libGLESv2.gypi and other projects. Change-Id: I6204dc767bd83b7aa7e4d6e2fa338b2ce7f304d8 Reviewed-on: https://chromium-review.googlesource.com/299401 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang e12150fe 2015-09-11T20:06:27 Revert "Update to the latest versions of the GL and EGL headers." Linux compile failures to do gyp defines. This reverts commit 8bbeabc1795473f7b3141219be3970fea3b95a71. Change-Id: Icb31dd817414b3a9ab36e88cedab9c725af26b6b Reviewed-on: https://chromium-review.googlesource.com/299173 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 8bbeabc1 2015-09-11T13:52:12 Update to the latest versions of the GL and EGL headers. Add GLES 3.1 and 3.2 headers. Remove GLES 3.0 extension headers and entry point files. Change-Id: Icaa444efa52f3b9d1497189da92bc364545a6e3a Reviewed-on: https://chromium-review.googlesource.com/299172 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 7aef6020 2015-09-11T19:04:00 Revert "Update to the latest versions of the GL and EGL headers." Broke the Clang compile. In file included from ../../third_party/angle/include/GLSLANG/ShaderLang.h:28: ../../third_party/angle/include/KHR/khrplatform.h:282:30: error: no newline at end of file [-Werror,-Wnewline-eof] #endif /* __khrplatform_h_ */ Several other similar errors. BUG=None This reverts commit aac2035d851fc92b159dc8e01cfd2ebb86e99e4a. Change-Id: I407e7e65bb6a46d1d941c54cdf14a14758e22d96 Reviewed-on: https://chromium-review.googlesource.com/298834 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang aac2035d 2015-09-11T13:52:12 Update to the latest versions of the GL and EGL headers. Add GLES 3.1 and 3.2 headers. Remove GLES 3.0 extension headers and entry point files. Change-Id: I8e9df6262dc1b2536a409c5791734e4a4d63b115 Reviewed-on: https://chromium-review.googlesource.com/299341 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>