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

227 Коммитов

Автор SHA1 Сообщение Дата
Eric Stevenson c84510f4a3 Angle: Remove obsolete requires_sdk_api_level_23 from BUILD.gn.
Will be removed upstream.

BUG=chromium:688465
Change-Id: If50ac3624a5f692755797eaabcc0c7d6e7408655
Reviewed-on: https://chromium-review.googlesource.com/1244079
Reviewed-by: Yuly Novikov <ynovikov@google.com>
Commit-Queue: Yuly Novikov <ynovikov@google.com>
2018-09-26 15:01:32 +00:00
Courtney Goeltzenleuchter 801719235b Add rules file for ANGLE apk
Provide rules as an asset to the ANGLE apk.
Rules determine the conditions when ANGLE will be used by
Android applications.

Bug=angleproject:2418

Change-Id: I3b8f0c51dc12e039e8c67acbace249abd15ae961
Reviewed-on: https://chromium-review.googlesource.com/1211764
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
2018-09-06 23:17:27 +00:00
Ian Elliott 4d42ef3965 Add A4A opt-in/out logic
This version of the code #ifdef's out the JSON-parsing code (which
dependency was not yet found).  Instead, 2 in-code rules are created
and used (default and run Maps).

Bug: angleproject:2794
Change-Id: I9d8c00459d5e674035f4073ccb839fac8d4d7aa5
Reviewed-on: https://chromium-review.googlesource.com/1200375
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-09-06 18:15:07 +00:00
Ian Elliott abcb2b3b36 Add stubs for A4A opt-in library.
Bug: angleproject:2794
Change-Id: I9ba8abf5fdac4a1bae24bc78ece62337d24e903b
Reviewed-on: https://chromium-review.googlesource.com/1196043
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-08-31 17:17:14 +00:00
Geoff Lang b02fc662fa Lock around all EGL and GL calls with a global mutex.
BUG=angleproject:2464

Change-Id: I0231cc84777272f9cf26298c6a137f1ad3fd51d6
Reviewed-on: https://chromium-review.googlesource.com/1183441
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2018-08-31 16:11:58 +00:00
Frank Henigman 44b2c0b1d3 Avoid rebase_path() in BUILD.gn.
Adjust source paths so we don't need to use rebase_path() on all of them.

BUG=angleproject:1569

Change-Id: I687dbb9378b1f054eb5664320c662fe4c882a82f
Reviewed-on: https://chromium-review.googlesource.com/1194619
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-08-30 18:45:22 +00:00
Frank Henigman ddc41208c1 Rename .gypi -> .gni.
Rename and reformat all gyp files.  They were previously converted to
gn but not renamed to preserve continuity in git.  This rename completes
the removal of all traces of gyp.

BUG=angleproject:1569

Change-Id: I50123105d8881583184ffc564bed65d9fbe4d41c
Reviewed-on: https://chromium-review.googlesource.com/1187885
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-08-29 21:00:11 +00:00
Frank Henigman a7f97a27eb Gyp is dead. Long live gn.
Remove the gyp build.  The .gypi files were not renamed so that diff and
rebase would work on this change.  They will be renamed in a separate
change.

BUG=angleproject:1569

Change-Id: If8a217027633293664b820104f91a4ca5889b24e
Reviewed-on: https://chromium-review.googlesource.com/1187380
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2018-08-29 19:26:38 +00:00
Takuto Ikuta c93eeaab15 Make angle's commit.h depend on git head
This is for reproducible build of angle related libraries.

Bug: 828669
Change-Id: I807c8fb01b976f6e7a71477ee934b9e0b0cdc684
Reviewed-on: https://chromium-review.googlesource.com/1164814
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-08-07 22:59:34 +00:00
Courtney Goeltzenleuchter 8c1508bc0b Update name of ANGLE Android apk to match expectations
Android build system wants to see pre-built components
like this with naming that indicates what it is.

Bug: angleproject:2702
Change-Id: I84acee78a6ceef5b04c87436c68d41510f6e66c7
Reviewed-on: https://chromium-review.googlesource.com/1155004
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-07-31 16:41:06 +00:00
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