Mid-execution replay starts the replay from a specific start frame
instead of frame 0. Integration tests will then run between the start
and end frames. This lets us make much smaller reproduction cases from
large benchmarks or applications.
We implement mid-execution replay via a cpp "Setup" function. The
replay test will run the setup function before the starting frame. Test
execution proceeds normally after setup.
Currently we do not implement mid-execution capture. We run capture on
all frames. Including frames before the start frame. We do this to
intercept compiled shaders and programs for easier caching. This could
be changed in the future to also start capture mid-execution. Mid-
execution capture might require using ProgramBinary calls to capture
shader and program data.
Many captures are unimplemented. Several comments indicate missing
functionality. There's a lot we can add as we explore replaying more
complex applications and higher GL versions. We will also need some
kind of state reset functionality so we can run the replay in a loop.
Bug: angleproject:3611
Change-Id: I51841fc1a64e3622c34e49c85ed8919a9a7c0b20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1689329
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
This file will be used with multi-frame captures to share common code.
Common code is global state, resource maps, and a list of frame replay
functions. This should make converting a CPP replay into a functional
test quite a bit simpler. The replay files will now be something like:
angle_capture_context1.cpp
angle_capture_context1.h
angle_capture_context1_frame000.cpp
angle_capture_context1_frame001.cpp
... etc
Also adds a template for adding a capture/replay sample. Instructions
are located in samples/BUILD.gn and docs in doc/CaptureAndReplay.md.
Bug: angleproject:3611
Change-Id: I437b338fd84689d670a7d9e3e219d9334de25fd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869543
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Introduces a few ways of controlling capture via:
* `ANGLE_CAPTURE_ENABLED`:
Can be set to "0" to disable capture entirely.
* `ANGLE_CAPTURE_OUT_DIR`:
Can specify an alternate directory than the CWD.
* `ANGLE_CAPTURE_FRAME_END`:
This variable can override the default of 10 frame to capture.
Also adds a simple usage guide document.
Bug: angleproject:3611
Change-Id: I49d32d5bae2c490dcbeb0f1ce3c6038e433adfaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869542
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Fixes links in the Vulkan back-end doc. Also includes a link to the
Vulkan back-end docs on the main page. Also updates the building code
section to mention VS2019 and make the win toolchain varable set more
prominent.
Bug: angleproject:1944
Change-Id: I8e8f0775daa3643afaa1ddd44429fa7d8e77b19b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1846014
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Until late 2017, ANGLE supported Windows Store apps on Windows 8.1,
Windows Phone 8.1, and Windows 10 (via the Universal Windows
Platform, aka UWP).
Unfortunately ANGLE deprecated support for Windows Store when it
switched from GYP to GN in 2017. Since then, users have been able
to use Microsoft\angle for their UWP apps but this isn't ideal since
it's based on a 2017 copy of Google\angle.
This PR bring back support for UWPs, so that UWP users can use
Google\angle again. Specifically it:
- Adds support for generating UWP projects via GN
- Adds helper/util functions specific to UWP (they're mostly
similar to the desktop Windows helpers)
- Fixes some existing Windows Store code that's rotted since 2017
- Disables async shader compilation for UWPs, since its
implementation calls wait on the UI thread (which is forbidden
in UWPs)
- Renames 'ANGLE_ENABLE_WINDOWS_STORE' to
'ANGLE_ENABLE_WINDOWS_UWP', since ANGLE only support UWPs now
- Fixes misc other related issues (such as dependencies on D3D9
headers in API-agnostic code)
Note that this doesn't bring back support for Windows/Phone 8.1.
BUG=angleproject:3922
Change-Id: Ia79ae05a5e0e0a0625eb633bf1928722dfd3e85f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1811871
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This is in preparation for adding more docs and migrating internal ones.
Bug: angleproject:1944
Change-Id: I7aa4d708c9cd6134ef4ded00a82890448988ce9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1773907
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
The GLSL + ESSL autogenerated symbol table is too large for
android, and android also doesn't need desktop GL functionality
If on android, compile the ESSL only symbol table
Bug: chromium:996286
Change-Id: I14dfc7748dae389e78c35f82a390c67962665356
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1757372
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
The charts were regenerated, update the docs to point to the new charts.
Also remove some redundancy (we don't need the overview to track differences in vendors)
Bug: angleproject:3713
Change-Id: I2005031c4ca960d7f9afd80562957d31af795d61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721190
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
New GLES3.1 vulkan tests were added to the bots. Add the results to the
ANGLE docs.
Bug: angleproject:3646
Change-Id: I503a00d38b570a1d8491acd8d1bac33723b2cbe4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688545
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Generate_stats should handle new step names and put them on new sheets.
Also update the docs to show the KHR tests.
Bug: angleproject:3486
Change-Id: I4fef774d98b0e622182686506376f788a7568376
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1632529
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Update to new (public) sheet in chromium account.
Fix issue with python newline on concatenated string.
Ensure all tables are sorted by date.
Bug: angleproject:3435
Change-Id: I5de178409dec1e0dcf1467e4f0fe8cf85ea23c08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1609939
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
These results are somewhat redundant. Don't need to be shown in the
public doc.
Bug: angleproject:3369
Change-Id: I4994cd5714e727afbfe63fb082dab074ed137d43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593959
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Also add a missing arrow from VertexArray to Context.
Bug: angleproject:3002
Change-Id: I2a30df0bb1c9681b4cf5178b75f1264ddf4ca2e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592065
Reviewed-by: Jamie Madill <jmadill@chromium.org>
The diagram source is available as a Google Driver document. It can be
opened with the draw.io web app.
Bug: angleproject:3002
Change-Id: Ic7885c8da1aacac5082eea05d0562d3d62f801ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592252
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Add target for angle_white_box_perftests to DevSetup.md Android build
instructions. Generously comment the test source to clarify various
tests and how to run them.
Bug: angleproject:3136
Change-Id: Ie4f0ec6951d354ebac861f727c9d550a93ad48c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1577740
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
This documents the discussion and conclusion on preferring to bake
generated code into the repository.
Bug: angleproject:3333
Change-Id: I1afc338c59d5bcb2a64f843081aba5120820e9ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1558676
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
It seems like there isn't a way to reference a local SVG in gitiles.
We'd need to upload the image to cloud storage. Instead we can use
the image in the repo if we link to the github version.
Bug: angleproject:3002
Change-Id: Ib1879d562e83ae16f531b204ca86cb73d45c5bb8
Reviewed-on: https://chromium-review.googlesource.com/c/1459600
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mention enums and static members can use CamelCase.
Bug: angleproject:1944
Change-Id: I7294418e9118d9d690f8f9c61adad9f5b819cc16
Reviewed-on: https://chromium-review.googlesource.com/1207550
Reviewed-by: Jamie Madill <jmadill@chromium.org>
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>
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>
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>
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>