Leave them centralized in ANGLEWrangling.md, link to them from
BranchingAndRolling.md, and add the Chromium-into-ANGLE autoroller.
Bug: angleproject:6323
Change-Id: I913954b92dbe3545320e662de122daf26140d425
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3124341
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Document the location and purpose of the ANGLE-into-Chromium and
Chromium-into-ANGLE autorollers, to make them easier to find for
people who don't often use them.
Also fix several broken links due to misplaced newlines pointed out by
syoussefi@.
Bug: angleproject:6323
Change-Id: Id3d2f0e5627729acd2447b4954d2920375c37db2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3120408
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Some transformations left the tree in an inconsistent state, for example
if it used gl_SampleMask from ES3.1+OES_sample_variables and the
transformation added a usage of gl_SampleMask from ES3.2. The offending
transformations are fixed and AST validation is improved to catch such
errors.
Bug: angleproject:4889
Change-Id: I9d9ea5bb43a9408dd4c6dc3e89ec20d60dfeff73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3054613
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Setting `is_component_build = false` in the GN args is highly
recommended for standalone builds on Windows, to support the common
practice of moving libEGL.dll and libGLESv2.dll to an application's
directory. It makes them self-contained instead of depending on other
DLLs (like e.g. ext-ms-win-kernel32-sidebyside-l1-1-0.dll).
One notable exception is that the non-component build still depends on
d3dcompiler_47.dll, if the Direct3D backend is being used.
Bug: angleproject:6202
Change-Id: Id13e902d3169b37ec00a8065d9063ec7d683134b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042543
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
In preparation for a Chromium change that makes dchecks enabled
by default in Release builds, we'll keep ASSERT disabled in
Release by default. We add a new flag 'angle_assert_always_on'
for controlling ANGLE ASSERT behaviour.
Also slightly refactors the direct SPIR-V generation GN.
Chromium CL: https://crrev.com/c/2893204
Bug: chromium:1225701
Change-Id: I01a6def28d7c21e771e9800889a6b9c274972de2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035447
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
ANGLE's VK backend induces a memory and binary size regression due to
global initializers in glslang/spirvtools. Disable it on Android Chrome
official builds.
Bug: chromium:1172451
Change-Id: I08d77cf11e20b393c0faf7c85d08c92061e5a09b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2969385
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
This explains how I am using lldbclient.py to debug angle on android.
Bug: None
Change-Id: I9c0a55ab3e2272fbd74905a7ac390d987c78d550
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2860396
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Bug: angleproject:5734
Change-Id: Ia1af247b45ad51072296f8d197dd4b49526417ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2851177
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
This CL makes angle_test() use an angle-specific gtest launcher -
AngleUnitTestActivity.java. This enables building standalone Android
angle without //base
Chromium-Bug: 1149922
Bug: None
Change-Id: Id84f3e2bd84c5017ed1988ca07534f424ebfa596
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2745535
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
The GN arg angle_expose_non_conformant_extensions_and_versions is being
added to control exposeNonConformantExtensionsAndVersions, which enables
non-conformant features and extensions. In particular, this is being
done to enable EXT_texture_buffer on devices that don't support all of
the necessary formats since many Android games rely on this extension,
such as "Special Forces Group 2", "Fortnite", and "PUBG".
# Enables non-conformant extensions and features
angle_expose_non_conformant_extensions_and_versions = false
Users/vendors can now toggle the value with a GN arg, rather than a code
change, to make it easier to test the conformant version of ANGLE with
CTS, dEQP, etc. and/or app-compatibility.
Bug: angleproject:5592
Change-Id: Icbf18b48a2751c03e277ae964e1ec278a43324cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2740643
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
This information should be generally searchable and available.
Bug: b/173636655
Change-Id: I5f8cad0f34f96c085ceea369d320863f20373c99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2714232
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
After changes to the GN arg "angle_enable_trace" were done, other GN
args are now needed.
Bug: b/170249632
Change-Id: Ib5e703434cb580aa838ef8632b271f5f20554f42
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2684933
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
The adb install command is being updated to include the following
options:
-r: replace existing application
-d: allow version code downgrade (debuggable packages only)
--force-queryable: mark the ANGLE APK as visible to all other packages
This will allow AngleLibraries.apk to install without errors and be
loadable for apps targeting SDK >= 30.
Bug: b/175800879
Change-Id: I61bb7218b407e54057adbfb5aa3098a96b903f5e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2602241
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
ANGLE cannot be enabled for all apps on Android unless the
device has root access.
Test: Inspect the resulting markdown doc
Bug: angleproject:4347
Bug: b/175324620
Change-Id: Idc37d6062a12240cf038ef13f7d53d769fa824a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2585074
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
We no longer require a specific version of the Windows SDK.
Also include updated instructions on how to setup Goma.
Bug: angleproject:1944
Change-Id: I5f9e714ebd69ba04eddc1b1fc2f95d1fde67a47f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2522419
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This CL adds a new way to set the start frame of a capture.
It adds a new environment variable called ANGLE_CAPTURE_TRIGGER
that, when set, will be used instead of frame start and end.
By setting ANGLE_CAPTURE_TRIGGER to a non-zero value, ANGLE will
capture that many frames when the value changes. For example,
on Android, we can set it with:
adb shell setprop debug.angle.capture.trigger 20
When we reach the target content, set the value back to zero:
adb shell setprop debug.angle.capture.trigger 0
and ANGLE will start capturing 20 frames.
Currently only hooked up for Android, but should be possible to
support on other platforms.
Test: Capture application frames using trigger
Bug: angleproject:4949
Change-Id: I469ef5c48feb78c85b8cda2fefd5df59e495bbe2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2347858
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Updates CaptureAndReplay.md with how to run capture_replay_tests.py.
Explains certain important flags and their effects on the behavior
of the script.
Bug: angleproject:4817
Change-Id: I628edf57cde51d2a6f667fbfd7dc937964badbac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336188
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
A few files inside the D3D11 tree are used by D3D9 and WGL backends. We
add these files to the build system even when D3D11 is disabled.
Also, we fix the use the of ANGLE_DEFAULT_D3D11 symbol.
Bug: angleproject:4839
Change-Id: I981f4bfc60d973c02549caa737c5aed5ccf31282
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2298143
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Multiple tests are run in paralell to squeeze the most out of CPUs.
Tests are stored in a work queue. Whenever a CPU becomes available,
the next unrun test is grabbed and run on a spawn process on that CPU.
Each cpu gets their own environment and build folders and trace folders
so that tests don't overwrite each other.
Bug: angleproject:4817
Change-Id: Ifd35c9c75522e480b0257d090d5af70f2a3428ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2296040
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Provided more links and steps per earlier advice from geofflang@.
Bug: angleproject:4842
No-Try: true
Change-Id: I9c9361b4b71a63fd36f79a87d45e0f4b04c4140c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2297528
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Adds to frame capture the ability to serialize a frame's pre-swap
GL state and store it in the binary data file
Adds to CaptureReplayTests the ability to compare its serialized GL
state with the serialized state pulled from the binary data file
Adds a serialization module that serializes framebuffers' GL states
and the contents of their color attachments
Adds checks to automation script so that it would skips tests that
do not produce the expected trace files
Adds exception handling to automation script so that it will not crash
when a replay build crashes
Bug: angleproject:4779
Change-Id: I40a02e018073749e79f0ddbfd3d4065745548f46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2258295
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
ANGLE should follow google's c++ style guide here instead of having its
own exception.
Bug: None
Change-Id: Ie3909335a99e40dd555db3d98aa2bb1886884423
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2261420
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Add the ability to release and reacquire the high-power GPU, and to
respond to changes in the active GPU. In Chromium, the GPU process can
not access the WindowServer. An external process must inform ANGLE
that the active GPU has changed, and that ANGLE should switch its
internal context to the new GPU.
Incorporates a couple of functions from WebKit, used with permission,
to effect this GPU switch.
A follow-on change in Chromium which uses these new APIs will make the
existing dual-GPU tests pass with ANGLE and the passthrough command
decoder.
Carry forward Chromium's workaround of disabling GPU switching on
older MacBook Pros to ensure stability.
Document the process of adding new EGL extensions to ANGLE.
Bug: chromium:1091824
Change-Id: I499739156e851b493555d4d6e4aef87d8b97fa31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2240638
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Had an incorrect label for the gl::Context and was missing a
few edges for new connections.
Bug: None
Change-Id: I037551f8f0a6559b9c522ae192b1cd93edf9bcf0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2223815
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Following up on feedback to minimize GN arg lists. The initial block
generates a Debug build with minimum variance from default args. The
additional blocks are for different scenarios, like getting maximum
performance, and verifying ANGLE runs cleanly with Vulkan in Release.
Bug: b/150368485
Bug: angleproject:4347
Change-Id: I4db6c389b9bdaf8124795a3aeeb79590245d1e70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2216813
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Gives about a 2-3x reduced data file size. Should help reduce the time
we spent transferring trace files on Android.
This feature is implemented as a parameter to the capture/replay tool.
This keeps backwards compatiblity if we ever need to integrate a cpp
replay into an environment that doesn't have access to zlib for
decompression.
We'll need to update the traces to take advantage of the compression.
Bug: angleproject:4484
Change-Id: Id7994efe3c0d529b85fa7e7f1b00444e630dd2cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2104555
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Adds more info on the amount of testing ANGLE runs and our various
configs. Adds a few other notes and cross-links.
Bug: angleproject:1944
Change-Id: I76e46783bd6a3f84d3e170bd30ea2e6d57911143
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2105715
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
This CL creates a new page that is dedicated to building and using
ANGLE for Android.
With Android 10 released, now anyone can try out ANGLE as their GLES
driver for debuggable apps. It can also be loaded for any app if the
user has root access.
Also migrated existing Android build instructions with updates from
the team.
Bug: angleproject:4347
Change-Id: Iead6a456780aba033a1227605f197a456ad30eb3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2063569
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Thanks to Jamie Madill for some fixes to get all CI test passing w/ volk.
This change updates all ANGLE targets that use Vulkan to dyanmically
link all of the VK entrypoints using the volk OSS library from
https://github.com/zeux/volk.
It's only two source files so baking them directly into ANGLE repo.
Also it's used in both the tests and libANGLE trees so added to
src/common/third_party/volk dir.
Updated volk and the renderer to track latest instance and device
that were loaded and renderer will refresh vk* function pointers if
the current and previous device and/or instance don't match. This
prevents errors in the test framework as we transition between
backends, especially between VK HW & SwiftShader ICDs.
This change rolls the Vulkan Loader forward to use the latest loader
version which no longer allows static linking but requires dynamic
linking.
Bug: angleproject:3740
Bug: angleproject:4092
Bug: angleproject:4162
Bug: angleproject:4210
Bug: angleproject:4225
Change-Id: I8a0b7d24c9545bbfdfaa4b9357a9bfe6793e0140
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965640
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Add an optional parameter (ANGLE_CAPTURE_LABEL) to
ANGLE frame capture that tags files and functions
uniquely, allowing multiple frame captures to be
replayed by a test harness.
Example:
ANGLE_CAPTURE_LABEL=foo
Results in filenames like this:
foo_capture_context1.cpp
foo_capture_context1.h
foo_capture_context1_files.txt
foo_capture_context1_frame000.angledata
foo_capture_context1_frame000.cpp
foo_capture_context1_frame001.angledata
foo_capture_context1_frame001.cpp
...
Functions wrapped in namespaces like this:
namespace foo
{
void ReplayContext1Frame0();
void ReplayContext1Frame1();
}
For use like this:
foo::SetupContext1Replay();
for (...)
{
foo::ReplayContext1Frame(i);
}
Bug: angleproject:3630
Change-Id: Ibe27dc4d40a36606ee40678a9e4d43b5a4baf976
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1949603
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Adds --deqp-egl-display-type=angle-metal for running the deqp tests
on Mac. Note: does not add any test suppressions for metal.
Bug: angleproject:2634
Change-Id: I8f8d3a83cf93a5b930b05af9f0075a9ce435823a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1954612
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>