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

267 Коммитов

Автор SHA1 Сообщение Дата
Ian Elliott d07c52e280 Initial Android implementation of GetSystemInfo
Change-Id: Ia44413aa94906b89d4981063600cd3de0edacee8
Reviewed-on: https://chromium-review.googlesource.com/1108454
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-06-26 16:14:14 +00:00
Yuly Novikov cd70aa422c Always depend on libandroid for angle_util.
libnativewindow doesn't have all the functions angle_util requires,
namely: AConfiguration_*, AInputEvent_*, AInputQueue_*, ALooper_*.
It should be safe to always use libandroid, since angle_util is only
used by tests, thus it won't interfere with AngleLibraries.apk

Bug: angleproject:2418
Change-Id: I8343924629205bfb5d65dafe34db8e2baa987bae
Reviewed-on: https://chromium-review.googlesource.com/1108747
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2018-06-20 22:22:41 +00:00
Tobin Ehlis b971f499b5 Migrating ANGLE to split LVL repos
Separated the Vulkan Validation Layers, Loader, Tools and Headers into
separate dirs to map to the new separate repo structure.

Bug: angleproject:2558
Change-Id: I422038f7dd7efe8c5b7a49dc5074de5caf40edfa
Reviewed-on: https://chromium-review.googlesource.com/1071880
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-06-13 18:17:16 +00:00
Tom Anderson a4a3c19a43 Remove manual references to exe_and_shlib_deps
After [1], a manual dependency on exe_and_shlib_deps is no longer necessary
since it's automatically added.  This CL removes all remaining manual references
to exe_and_shlib_deps.

[1] d7ed1f0a9c

BUG=chromium:845700

Change-Id: I66bcead6586050bf952c4aa1f4d3f726c88d2277
Reviewed-on: https://chromium-review.googlesource.com/1091231
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2018-06-08 17:28:35 +00:00
Courtney Goeltzenleuchter b001528ffa Use libnativewindow for Android builds
To avoid references to libEGL.so do not link with libandroid,
use libnativewindow instead. libnativewindow is available in
android-26 and newer.
The appropriate library will be selected based on the ndk level
configured. If ndk revision is 26 or higher, we'll link to
libnativewindow otherwise use libandroid.
The ANGLE apk needs to use 26 or higher.

Bug: angleproject:2418
Change-Id: I96509e5d645d132a34734558cd0566f1812b615b
Reviewed-on: https://chromium-review.googlesource.com/1066821
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2018-05-23 20:27:18 +00:00
Courtney Goeltzenleuchter 4607148c6b Add build-id for all builds to help debugging
Android Studio debugger needs the build-id to be able to
match up symbols with stripped libraries.

Bug: angleproject:2566
Change-Id: Ied6afd09c9ec0d379a16b4a08b56b827af11ca0d
Reviewed-on: https://chromium-review.googlesource.com/1064554
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-05-17 20:58:22 +00:00
Courtney Goeltzenleuchter 96d292d0fb Format cleanup
Bug: angleproject:2339
Bug: angleproject:2455
Change-Id: I12dfd1e95f18a4277f409d694000e0e775c8bffb
Reviewed-on: https://chromium-review.googlesource.com/1064814
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-05-17 20:48:22 +00:00
Jamie Madill 74a763205a Fix libGLESv2 wrong .def file.
The GN was including both libGLESv2.def and _autogen. This fixes the
GN to only include _autogen, and removes the .def include from the
static build target.

Bug: angleproject:2476
Change-Id: I2e856e3bbe875bdadd1add4517cef60a11227047
Reviewed-on: https://chromium-review.googlesource.com/1057451
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Brandon1 Jones <brandon1.jones@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-05-14 15:49:28 +00:00
Olli Etuaho 8073a9511a Enable warning for non-virtual destructors
Virtual functions are removed from TSymbol, so the warning for
non-virtual destructor found in a class with virtual functions can be
enabled.

BUG=angleproject:2417
TEST=angle_unittests

Change-Id: Icd0ea2c77ce826739fbe954137f8ee78e6ef5386
Reviewed-on: https://chromium-review.googlesource.com/1051830
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2018-05-11 06:47:28 +00:00
Jamie Madill d47044ad53 Vulkan: Add framework for internal shaders.
Vulkan intenal shaders are stored in a ShaderLibrary, and this is
owned by the RendererVk. This way the shaders are reused between all
the different Contexts. They are initialized lazily to keep init time
low. They also have an associated Serial (called a ProgramSerial) so
they can be identified in a PipelineDesc (used by the Pipeline cache).

We use a python script to build and invoke the glslang validator, that
also produces SPIR-V binary code snippets. These snippets are gathered
into an auto-generated file that is exposed via an auto-generated
header file. The InternalShaderID enum class gives access to the
internal shaders that are shared through the Vulkan back-end.

This also adds simple clear shaders to be used in masked color clears.
The patch doesn't add any functionality but it is split off from the
color clear functionality to keep the code size down.

Bug: angleproject:2339
Bug: angleproject:2455
Change-Id: Ie83043eda217c9f013817b198c92a3b7ba0878b4
Reviewed-on: https://chromium-review.googlesource.com/1031372
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2018-05-01 20:39:47 +00:00
Courtney Goeltzenleuchter ddd772455c Add GLESv1_CM to angle library apk
Bug: angleproject:2418

Change-Id: I793d330a2cc92a510b189fa23d14f41f48a7d986
Reviewed-on: https://chromium-review.googlesource.com/1035422
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
2018-04-30 18:37:00 +00:00
Courtney Goeltzenleuchter e5db628b75 Cleanup for "Add angle library apk"
Forgot to format BUILD.gn in CL 46978bccd3659
Remove unnecessary android:debuggable setting
Bug: angleproject:2520

Change-Id: I31457c82536827f78e3aa17c02dd8e878f803f04
Reviewed-on: https://chromium-review.googlesource.com/1030259
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-04-26 18:40:36 +00:00
Courtney Goeltzenleuchter 2565d48b47 Add angle library apk
Package up libraries into Android APK.
Libraries must be uncompressed for them to be mmapped properly.
Bug: angleproject:2418

Change-Id: I27817d7a6c5dcd93ca7790c55042c6548f84906f
Reviewed-on: https://chromium-review.googlesource.com/1013057
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2018-04-25 01:04:02 +00:00
Courtney Goeltzenleuchter ec10096dba Vulkan: Add build toggle for validation layers.
We want to be able to build without validation layers to
make it easier to use in other environments (e.g. Android)
When angle_enable_vulkan is true and
angle_enable_vulkan_validation_layers is true, build the
Vulkan validation layers.

Bug: angleproject:2489

Change-Id: I266ad8f757c5992021f249217f2be58f0148fcbf
Reviewed-on: https://chromium-review.googlesource.com/1005558
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-04-18 17:09:12 +00:00
Jamie Madill eb79e337c9 Vulkan: Do not build mock ICD on Android.
This is causing a GN build error on our Android bots.

Bug: angleproject:2471
Bug: angleproject:2482
Change-Id: I35ffc7972effb9c9ea26ab96cf23985eba1702c3
Reviewed-on: https://chromium-review.googlesource.com/1016700
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-04-18 12:40:41 +00:00
Jamie Madill 08b9e046c1 Vulkan: Disable warning in Mock ICD.
We were missing a "no chromium code" config in the mock ICD.
This was causing a build error, but the build error was mostly
invisible because the mock ICD wasn't being built by default.

Fix this by including it in the angle_vulkan target.

Bug: angleproject:2482
Change-Id: I417d3fbf6a4acd93c06bab61967409730c2ea4ed
Reviewed-on: https://chromium-review.googlesource.com/1012497
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-04-17 00:57:31 +00:00
Courtney Goeltzenleuchter 152152618e Enable unneeded-internal-declaration compiler warning
No longer have issues with unneeded internal declarations
now that Tokenizer.cpp has been updated so re-enable
compiler warning to catch future issues.
BUG:angleproject:2451
Test: build

Change-Id: I30daadc8c7374bcae753a7e69cb9a72855a1f548
Reviewed-on: https://chromium-review.googlesource.com/1007965
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-04-13 21:16:52 +00:00
Yuly Novikov ad4f9642a6 Allow ANGLE libs to have arbitrary suffix.
In order to work with tools which intercept EGL and GLES calls.

BUG=angleproject:2343

Change-Id: I63aec7a56648dc4b3e7f4aff7f7d1608709ba118
Reviewed-on: https://chromium-review.googlesource.com/920652
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2018-03-23 22:09:24 +00:00
Yuly Novikov 40a945f293 Rename vulkan_loader to libvulkan
Also add a build argument to build it as a shared library.

BUG=angleproject:2343

Change-Id: Ia590632b94d71b10d3ee64974fa4f5b4f00c3a70
Reviewed-on: https://chromium-review.googlesource.com/954403
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2018-03-20 23:18:43 +00:00
Jamie Madill 8d986bf241 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>
2018-02-21 14:20:38 +00:00
Jamie Madill d7ebfb92ba Add missing is_fuchsia to system_utils selection.
This fixes a build break because of 046fa0efc4.
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>
2018-02-16 00:31:11 +00:00
Nico Weber b5db2b497b 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>
2018-02-15 18:54:20 +00:00
Lingfeng Yang 4edce33698 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>
2018-02-15 15:11:05 +00:00
Yuly Novikov bac02d76e9 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>
2018-02-08 17:04:13 +00:00
Jamie Madill a1134ba865 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>
2018-02-07 21:33:33 +00:00
Jamie Madill b62a1c2ac8 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>
2018-02-06 21:47:01 +00:00
Nico Weber 79de62c665 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>
2018-01-31 17:04:02 +00:00
Yuly Novikov 199f42941a 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>
2018-01-30 22:10:20 +00:00
Jamie Madill 5dd4ad896b 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>
2018-01-29 22:32:40 +00:00
Yuly Novikov e762400446 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>
2018-01-28 01:56:16 +00:00
Geoff Lang 2aaa7b4e10 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>
2018-01-16 19:01:00 +00:00
Frank Henigman e42ec189cc 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>
2017-12-15 21:01:57 +00:00
Geoff Lang b944053a0e 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>
2017-11-29 17:22:20 +00:00
Jamie Madill ff7aac5e4f 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>
2017-11-14 04:34:52 +00:00
Corentin Wallez 163965d5ce 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>
2017-10-30 21:55:55 +00:00
Corentin Wallez aa9c396b79 Revert "BUILD.gn: prepare dEQP test support on Mac"
This reverts commit 4b8b650c8e.

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>
2017-10-27 14:55:55 +00:00
Corentin Wallez 4b8b650c8e 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>
2017-10-27 04:14:01 +00:00
Yuly Novikov c4f1dd83ff 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>
2017-10-26 18:48:40 +00:00
Jamie Madill 6d94f064ae 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>
2017-10-22 15:13:56 +00:00
Jonathan Metzman fb9051a588 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>
2017-10-20 16:02:26 +00:00
Frank Henigman d0ef13a250 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>
2017-10-18 17:02:13 +00:00
Ben Wagner d736cccf04 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>
2017-10-12 14:36:57 +00:00
Ben Wagner 211bff3f6c 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>
2017-10-11 13:50:47 +00:00
Yuly Novikov f0be43fee2 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>
2017-06-30 02:39:30 +00:00
Ken Russell fcadd08ad7 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>
2017-06-29 15:03:04 +00:00
Jamie Madill 5ea762a660 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>
2017-06-07 22:56:29 +00:00
Jamie Madill 9216a6e26d 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>
2017-05-31 16:02:10 +00:00
Tom Anderson 26098cb2ef 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>
2017-05-25 18:53:05 +00:00
Jamie Madill e1fd475b09 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>
2017-04-27 15:58:58 +00:00
Frank Henigman 29f148b0ca 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>
2017-04-26 16:54:00 +00:00
Jamie Madill 6de5185898 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>
2017-04-19 21:50:10 +00:00
Corentin Wallez 8f77e5d323 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>
2017-03-29 21:35:13 +00:00
Corentin Wallez 16d4e472de BUILD.gn: declare_args() use_lipci
This is the third stage of 05356e35d3
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>
2017-03-20 18:31:46 +00:00
Corentin Wallez 05356e35d3 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>
2017-03-06 22:58:16 +00:00
Corentin Wallez d83f64f5c8 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>
2017-02-22 22:50:10 +00:00
Corentin Wallez 878baf9071 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>
2017-02-15 21:02:15 +00:00
Corentin Wallez 7b4e00d20e 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>
2017-02-13 19:47:15 +00:00
Jamie Madill e794cd86d4 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>
2017-01-30 18:53:01 +00:00
Andrew Grieve 949e0700bc 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>
2017-01-23 23:17:40 +00:00
Jamie Madill dcab56a1b8 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>
2017-01-05 23:41:59 +00:00
Jamie Madill 80ab03c58d 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>
2017-01-04 19:24:32 +00:00
Jamie Madill 192745a74e 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>
2016-12-23 00:30:50 +00:00
Yuly Novikov a4ab58044a 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>
2016-12-22 00:53:39 +00:00
Jamie Madill 327ba857f6 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>
2016-12-20 16:05:41 +00:00
Jamie Madill 120040e239 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>
2016-12-08 20:49:31 +00:00
Corentin Wallez 64598b53ef 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>
2016-11-15 18:04:00 +00:00
Yuly Novikov dfd7fb2ade 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>
2016-11-11 22:32:37 +00:00
Yuly Novikov ea5865497e 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>
2016-11-11 19:45:51 +00:00
Corentin Wallez 7f07caa961 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>
2016-11-08 14:48:42 +00:00
Yuly Novikov e653403bae 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>
2016-11-03 17:07:18 +00:00
Geoff Lang d08f3b3df7 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>
2016-10-05 18:45:49 +00:00
Corentin Wallez 054f7ed0d6 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>
2016-09-26 19:25:29 +00:00
Jamie Madill 1db8a26b56 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>
2016-09-22 21:11:14 +00:00
Corentin Wallez a5615c69b1 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>
2016-09-19 19:55:36 +00:00
Corentin Wallez 30e11ab241 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>
2016-09-16 15:47:10 +00:00
Corentin Wallez 28b6528ca2 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>
2016-09-15 20:03:53 +00:00
Yuly Novikov e3352f94a1 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>
2016-08-30 20:50:59 +00:00
Yuly Novikov 55033e583b Revert "Change angle_util to be a shared library"
This reverts commit 2f9b5e6f79.

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>
2016-08-25 18:12:11 +00:00
Yuly Novikov 2f9b5e6f79 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>
2016-08-24 21:01:16 +00:00
Austin Kinross 91e71ed99f 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>
2016-08-23 20:11:39 +00:00
Jamie Madill 509a1d4602 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>
2016-08-04 19:16:22 +00:00
Jamie Madill ce1ed238a5 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>
2016-07-24 18:42:37 +00:00
Jamie Madill a8503cefdc 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>
2016-07-18 20:44:10 +00:00
Jamie Madill 5bc93c4186 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 aeb477fbe5.

Change-Id: I01baaf082f282c9d80a9c17fd6ffc2b8911313b2
Reviewed-on: https://chromium-review.googlesource.com/361094
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-07-18 16:34:54 +00:00
Jamie Madill aeb477fbe5 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>
2016-07-18 15:29:24 +00:00
Dirk Pranke 313d944745 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>
2016-07-14 18:34:44 +00:00
Frank Henigman e8d5c5c436 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>
2016-07-07 21:55:31 +00:00
Geoff Lang 6e4cfceb80 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>
2016-07-04 22:06:07 +00:00
Frank Henigman 62ba96236e 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>
2016-06-29 17:17:31 +00:00
Frank Henigman 77df676ea3 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>
2016-06-23 18:02:48 +00:00
Robert Sesek db8ae83673 [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>
2016-06-21 16:56:50 +00:00
Yuly Novikov a6426d6753 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>
2016-06-07 02:19:07 +00:00
Jamie Madill e2e406c3a4 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>
2016-06-03 15:52:02 +00:00
Jamie Madill e31fd8753b 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>
2016-05-27 20:05:05 +00:00
Jamie Madill 9e54b5af89 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>
2016-05-25 20:05:11 +00:00
Yuly Novikov 87ae8cdf04 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>
2016-05-20 00:48:21 +00:00
Nico Weber de44d3a43a 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>
2016-05-16 18:28:09 +00:00
John Bauman e271a7e4a1 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>
2016-05-12 03:00:53 +00:00
Steven Bennetts 369d03c191 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>
2016-05-06 01:24:03 +00:00
Jeremy Roman 06feb81cb6 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>
2016-04-07 13:48:45 +00:00
Corentin Wallez cc068e9385 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>
2016-03-26 01:17:51 +00:00
Corentin Wallez dbc9ccfb71 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>
2016-02-05 18:01:10 +00:00
Corentin Wallez adc5b0eb75 Fix translator having multiply defined symbols in GN builds.
This error was introduced in 82b5ab606f
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>
2016-01-12 22:07:26 +00:00
Corentin Wallez c89df2ba30 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>
2016-01-12 16:23:22 +00:00
Jamie Madill 1fae35562c 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>
2016-01-12 14:59:21 +00:00
Jamie Madill edbc2449de 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>
2016-01-11 19:20:42 +00:00
Austin Kinross 82b5ab606f 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>
2016-01-11 17:38:34 +00:00
Roland McGrath f786c2b976 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>
2016-01-05 20:59:59 +00:00
Corentin Wallez 4bc76d07e8 Revert "Add loadable_module versions of libEGL and libGLESv2."
This reverts commit 6beb0bfdd0.

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>
2015-12-15 20:07:39 +00:00
Corentin Wallez 6beb0bfdd0 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>
2015-12-14 19:21:09 +00:00
Austin Kinross 502f3df6aa 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>
2015-12-03 17:54:50 +00:00
Dirk Pranke ac0f9b1f94 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>
2015-11-13 15:07:25 +00:00
Geoff Lang ee48376c1f 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>
2015-09-15 20:13:55 +00:00
Geoff Lang 0393310feb Revert "Update to the latest versions of the GL and EGL headers."
Issues with GN build.

This reverts commit 8284436798.

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>
2015-09-15 17:07:24 +00:00
Geoff Lang 8284436798 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>
2015-09-11 20:25:50 +00:00
Geoff Lang e12150fe9c Revert "Update to the latest versions of the GL and EGL headers."
Linux compile failures to do gyp defines.

This reverts commit 8bbeabc179.

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>
2015-09-11 20:06:38 +00:00
Geoff Lang 8bbeabc179 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>
2015-09-11 19:33:49 +00:00
Jamie Madill 7aef6020a0 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 aac2035d85.

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>
2015-09-11 19:06:12 +00:00
Geoff Lang aac2035d85 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>
2015-09-11 18:35:35 +00:00
Corentin Wallez beb81589d0 Make the end2end tests compile in the GN build.
BUG=angleproject:929

Change-Id: Ifc5ad03579c3e187721842f7585f3f06b69cbf45
Reviewed-on: https://chromium-review.googlesource.com/296682
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-09-02 20:46:28 +00:00
Corentin Wallez d4bcfa2cd6 Make the unittests compile in the GN build.
This changes angle_unittests.gypi to use a variable per list of files so
that we can grab the list of files in conditions in BUILD.gn

BUG=angleproject:929

Change-Id: I7fc73fd84d8efc1ea545fe672b1dba1c429b317f
Reviewed-on: https://chromium-review.googlesource.com/296443
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-09-01 19:53:31 +00:00
Tomasz Moniuszko 319fb898fb Use default commit.h file if git index is not available
The solution is the same as in GYP version:
1. Check if .git/index is available in angle directory.
2. Use generated commit.h file if git is available or copy the default
file instead.

Change-Id: Ic3cedf6793c368070228a63c0eb270ca6fb47f81
Reviewed-on: https://chromium-review.googlesource.com/289391
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Tomasz Moniuszko <tmoniuszko@opera.com>
2015-08-12 16:33:23 +00:00
Cooper Partin 75da1974b9 Changed d3d11 desktop renderer to use d3d9 debug annotation interfaces.
The D3D11 renderer must choose the D3D9 debug annotator because the D3D11 interface
method ID3DUserDefinedAnnotation::GetStatus on desktop builds doesn't work with the Graphics
Diagnostics tools in Visual Studio 2013.
The D3D9 annotator works properly for both D3D11 and D3D9.
Incorrect status reporting can cause ANGLE to log unnecessary debug events.

Change-Id: I9a31c63cbc506904eb39577826fc4df8d503f03a
Reviewed-on: https://chromium-review.googlesource.com/278162
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cooper Partin <coopp@microsoft.com>
Tested-by: Cooper Partin <coopp@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2015-07-13 17:50:46 +00:00
Nico Weber 47b53c006b Mark no_angle_common as no_chromium_code.
All other targets that remove chromium_code add
no_chromium_code; looks like not doing this here was an
oversight.

BUG=491209

Change-Id: Id5c81d019603b428561a23aaa4dbe4427e43e751
Reviewed-on: https://chromium-review.googlesource.com/275316
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Tested-by: Nico Weber <thakis@chromium.org>
2015-06-04 20:51:20 +00:00
Corentin Wallez 51e2ad1457 Do not always use X11 for Linux builds, inherit Chromium's settings
This fixes project generation for Chromium for non-X11 builds

BUG=angleproject:1011

Change-Id: If528f63fb186d834d56a43ca379497d99e74777e
Reviewed-on: https://chromium-review.googlesource.com/273163
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2015-05-27 17:13:29 +00:00
Corentin Wallez 47fc1fecc4 Compile the GLX EGL implementation in BUILD.gn
BUG=angleproject:892

Change-Id: Ifebcadab4fc4ad9fd93b9cf21b3ebdd2f4d6cfc1
Reviewed-on: https://chromium-review.googlesource.com/271164
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-14 15:35:34 +00:00
Brett Wilson a662abb5e7 Fix GN Windows component build.
The translator_static dependency is missing from libANGLE.
GYP has this dependency.

Change-Id: I30165a041f88f7e3c6f550744d2c7a4103d0f520
Reviewed-on: https://chromium-review.googlesource.com/264425
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-07 20:03:50 +00:00
Dirk Pranke a17e77febd Replace stray reference to cpu_arch in BUILD.gn.
cpu_arch has been replaced by target_cpu and current_cpu in GN.

R=geofflang@chromium.org
BUG=344767

Change-Id: Id1c0e37238db5fac41572244aeac0908ac5a412a
Reviewed-on: https://chromium-review.googlesource.com/260971
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-03-18 22:05:40 +00:00
Daniel Bratell 73941deb4f Disable the HLSL code in Angle if it is not being used.
We're only using the HLSL code in Windows so
it's not necessary to compile and distribute it on other platforms.

This adds a defined ANGLE_ENABLE_HLSL that can be checked in files that
are used by non-HLSL code as well. Mostly the HLSL code is just not
include by the build system.

Details of the space savings (heavily truncated)

Total change: -165717 bytes
===========================
 -606 - Source: angle/src/common/utilities.cpp
 -627 - Source: angle/src/compiler/translator/FlagStd140Structs.cpp
 -695 - Source: /usr/include/c++/4.8/bits/stl_algo.h
 -710 - Source: angle/src/compiler/translator/TranslatorHLSL.cpp
 -713 - Source: angle/src/compiler/translator/IntermNode.h
 -863 - Source: /usr/include/c++/4.8/bits/stl_map.h
 -935 - Source: angle/src/compiler/translator/blocklayout.cpp
 -1515 - Source: angle/src/compiler/translator/BuiltInFunctionEmulator.cpp
 -1655 - Source: angle/src/compiler/translator/UnfoldShortCircuit.cpp
 -2375 - Source: /usr/include/c++/4.8/bits/vector.tcc
 -3135 - Source: angle/src/compiler/translator/RewriteElseBlocks.cpp
 -4656 - Source: angle/src/compiler/translator/UtilsHLSL.cpp
 -5265 - Source: angle/src/compiler/translator/BuiltInFunctionEmulatorHLSL.cpp
 -6505 - Source: /usr/include/c++/4.8/bits/stl_tree.h
 -11480 - Source: angle/src/compiler/translator/UniformHLSL.cpp
 -13580 - Source: angle/src/compiler/translator/StructureHLSL.cpp
 -18964 - Source: ??
    (constant strings and a few vtbls)
 -89332 - Source: angle/src/compiler/translator/OutputHLSL.cpp

Change-Id: I23ccc98abd0a21f847dd34f9482800b3ba679d56
Reviewed-on: https://chromium-review.googlesource.com/251528
Tested-by: bratell at Opera <bratell@opera.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2015-02-25 16:27:01 +00:00
Geoff Lang 23dcabadae Enable the OpenGL/WGL backend on Windows.
BUG=angle:890

Change-Id: Ida58ecb9f3bcfd7ee9ae5c7cdbdff4aab9cca869
Reviewed-on: https://chromium-review.googlesource.com/249741
Reviewed-by: Cooper Partin <coopp@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-02-13 21:35:06 +00:00
Geoff Lang c588ac7335 Add the OpenGL renderer to the GN build.
BUG=angle:890

Change-Id: I097296c7125e203ba04eab1c179dc8c183ed4789
Reviewed-on: https://chromium-review.googlesource.com/249842
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-02-13 21:31:07 +00:00
Austin Kinross 4085347266 Disable warning 4530 in the libANGLE GN project
Change-Id: I56b5428f40a294248305dff168b9b0bb7b0a9bcc
Reviewed-on: https://chromium-review.googlesource.com/249240
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-02-12 21:27:38 +00:00
Jamie Madill 562e81bbcc Fix Linux build, and update BUILD.gn.
Re-re-land with fixes for Linux and Android.

We were getting multiply defined symbol errors on Linux for some
stuff in the common sources. Switch to using a static lib target
for the common sources, and also sync BUILD.gn with the latest gyp.

BUG=angle:773

Change-Id: Ia2d52978a167c532e5e76cb711de589855eff44e
Reviewed-on: https://chromium-review.googlesource.com/240553
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-01-14 20:57:57 +00:00
Jamie Madill 433c85d3c0 Revert "Fix Linux build, and update BUILD.gn."
Still more build failures, different ones this time.

This reverts commit 9f8a57c641.

Change-Id: I7bea8e24403d92ca4ecb2ee0f24f9e065db5366d
Reviewed-on: https://chromium-review.googlesource.com/240550
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-01-13 22:52:29 +00:00
Jamie Madill 9f8a57c641 Fix Linux build, and update BUILD.gn.
Re-land with fixes for Android.

We were getting multiply defined symbol errors on Linux for some
stuff in the common sources. Switch to using a static lib target
for the common sources, and also sync BUILD.gn with the latest gyp.

BUG=angle:773

Change-Id: Id3edecc633b1c4be205558137c91baf87f256156
Reviewed-on: https://chromium-review.googlesource.com/240145
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-01-13 20:44:19 +00:00
Jamie Madill 04184fb046 Revert "Fix Linux build, and update BUILD.gn."
This reverts commit ed409f938b.

Change-Id: I208a2c43c73e99ae95988c6d81ed64691bd8a99f
Reviewed-on: https://chromium-review.googlesource.com/239900
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-01-09 16:51:27 +00:00
Jamie Madill ed409f938b Fix Linux build, and update BUILD.gn.
We were getting multiply defined symbol errors on Linux for some
stuff in the common sources. Switch to using a static lib target
for the common sources, and also sync BUILD.gn with the latest gyp.

BUG=angle:773

Change-Id: I212284cfa90cd117a784a5f17057f47dd08900d1
Reviewed-on: https://chromium-review.googlesource.com/239193
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-01-09 15:54:02 +00:00
Geoff Lang e7c6e43c2c Implement all entry points in libGLES and have libEGL act as a shim.
This allows libANGLE to only be included in libGLESv2 and moves all TLS
data to libGLESv2.dll.

BUG=angle:733

Change-Id: I34f0b47987a5efbe906c290d3ca656142e69ea9a
Reviewed-on: https://chromium-review.googlesource.com/232962
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2014-12-05 16:11:01 +00:00
Geoff Lang 9d9132dff2 Remove support for compiling libANGLE as a dynamic library.
BUG=angle:733

Change-Id: Iacef45b89f234091eb5df505437adabece1e564b
Reviewed-on: https://chromium-review.googlesource.com/232961
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2014-12-04 15:04:25 +00:00
Geoff Lang 8bc361e144 Support compiling libANGLE as a static or shared library.
BUG=angle:733

Change-Id: If27d3330534bce0f5b691010ea7d97bcb7579122
Reviewed-on: https://chromium-review.googlesource.com/231052
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2014-12-01 19:01:02 +00:00
Geoff Lang 2207213ba5 Move as many files as possible from common to libANGLE.
BUG=angle:733

Change-Id: If01c91cd52ac5c2102276a9fdc4b68ebc13e47f9
Reviewed-on: https://chromium-review.googlesource.com/231850
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2014-11-25 16:20:33 +00:00
Geoff Lang 4349ab855d Revert "Move as many files as possible from common to libANGLE."
Chromium directly includes our common/version.h and couldn't build after this change.

This reverts commit f0a2c7727f.

Change-Id: Iafc41b1a3973f609518fe3588fdb64cecc285332
Reviewed-on: https://chromium-review.googlesource.com/231840
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2014-11-25 15:53:46 +00:00
Geoff Lang f0a2c7727f Move as many files as possible from common to libANGLE.
BUG=angle:733

Change-Id: I40cee6e2e305ac493acbc8649f858785c0569aed
Reviewed-on: https://chromium-review.googlesource.com/231051
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2014-11-25 15:29:02 +00:00
Geoff Lang 2b5420c07f Merge libGLESv2 and libEGL classes into libANGLE.
BUG=angle:733

Change-Id: Ic491c971411fe82c56cd97c5c8325ac14ec218df
Reviewed-on: https://chromium-review.googlesource.com/230830
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2014-11-21 19:46:02 +00:00
John Abd-El-Malek ea0c84d177 Copy the D3D compiler dll in the GN build.
Change-Id: I773a411d07991d9ae160267eba8325c327146554
Reviewed-on: https://chromium-review.googlesource.com/229007
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: John Abd-El-Malek <jam@chromium.org>
2014-11-17 22:10:56 +00:00
Scott Graham 7e81c9d5fb Revert "Revert "Switch to 8.1 SDK and d3dcompiler_47.dll""
This reverts commit 3cbdc34d4e.

This reverts back to using 8.1 and d3dcompiler_47, as chrome is now rolled forward.

Change-Id: I7ef4ebdbc32146b9ba6f551e376ac03ac71131ba
Reviewed-on: https://chromium-review.googlesource.com/229990
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
Tested-by: Scott Graham <scottmg@chromium.org>
2014-11-15 05:18:59 +00:00
Scott Graham 3cbdc34d4e Revert "Switch to 8.1 SDK and d3dcompiler_47.dll"
This reverts commit e1425d95ba.

This is to keep the GPU fyi bots green until the chrome side is landed. Chrome will be rolling to e1425d95...

Change-Id: Iff1c60eeb7143fb72afa8525b31f8f0de9385897
Reviewed-on: https://chromium-review.googlesource.com/229497
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2014-11-14 18:27:07 +00:00
Scott Graham e1425d95ba Switch to 8.1 SDK and d3dcompiler_47.dll
Change-Id: If43c7861ab7f47448fd726fd0b5c35f3a6eeb362
Reviewed-on: https://chromium-review.googlesource.com/229616
Commit-Queue: Scott Graham <scottmg@chromium.org>
Tested-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2014-11-14 17:21:29 +00:00
John Abd-El-Malek 657cd684a6 Fixes for Angle to build with Windows GN.
Change-Id: Id38c4b11dba31b2779efa7beade481cd50f3d935
Reviewed-on: https://chromium-review.googlesource.com/227692
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Shannon Woods <shannonwoods@chromium.org>
2014-11-05 22:36:58 +00:00
John Abd-El-Malek 330f0adedd Fixes for Angle to build with Windows GN.
Change-Id: I5af7a1305e5a190de5367ad940186edd6baee5bc
Reviewed-on: https://chromium-review.googlesource.com/227665
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2014-11-05 22:07:42 +00:00